BDF (파일 포맷)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
BDF (Bitmap Distribution Format)는 글꼴의 비트맵 데이터를 저장하는 파일 형식이다. BDF 파일은 세 부분으로 구성된다: 모든 글리프에 적용되는 전역 섹션, 각 글리프에 대한 개별 항목, 그리고 ENDFONT 문. 전역 섹션은 STARTFONT로 시작하여 CHARS로 끝나며, 글꼴의 기본 정보를 정의한다. 각 글리프는 STARTCHAR로 시작하여 ENDCHAR로 끝나며, 개별 문자의 비트맵과 속성을 포함한다. BDF 버전 2.2는 비 서구권 언어 지원을 추가하여 다국어 글꼴을 지원한다. X 윈도 시스템은 BDF 파일을 사용하여 글꼴을 정의하며, 다양한 속성을 지원한다.
더 읽어볼만한 페이지
- 글꼴 포맷 - 오픈타입
오픈타입은 마이크로소프트와 어도비가 개발한 글꼴 형식으로, 유니코드를 기반으로 다양한 스크립트 지원, 크로스 플랫폼 호환성, 확장된 타이포그래피 기능, 스마트 폰트 옵션 등을 제공하며 표현력을 확장하는 기술을 포함하고 국제 표준으로도 지정되었다. - 글꼴 포맷 - 임베디드 오픈타입
EOT는 웹 글꼴 포함을 위한 파일 포맷으로, 트루타입 글꼴에서 생성되어 부분 집합화 및 압축을 사용하지만, 인터넷 익스플로러에서만 지원되는 독점 표준이자 보안 문제로 인해 다른 포맷으로 대체되었다. - X 윈도 시스템 - 데스크톱 환경
데스크톱 환경은 아이콘, 창, 메뉴 등으로 컴퓨터 화면을 책상처럼 보이게 하는 시각적 인터페이스로, 창 관리자, 파일 관리자 등으로 구성되어 파일 관리 및 프로그램 실행을 지원하며, 다양한 종류가 존재하여 사용자가 선택할 수 있다. - X 윈도 시스템 - 오픈 그룹
오픈 그룹은 다양한 기술 공급업체, 구매자, 정부 기관을 포함하는 국제 컨소시엄으로, 표준 개발, 인증 프로그램 운영, TOGAF와 같은 IT 아키텍처 프레임워크 제공 및 UNIX 상표 권리 보유를 통해 개방형 IT 표준 개발 및 보급에 기여한다.
BDF (파일 포맷) - [IT 관련 정보]에 관한 문서 | |
---|---|
파일 포맷 정보 | |
이름 | 글리프 비트맵 배포 포맷 |
확장자 | .bdf |
마임 타입 | application/x-font-bdf |
소유자 | 어도비 |
장르 | 비트맵 글꼴 포맷 |
발표일 | 1987년 |
최신 버전 발표일 | 1993년 3월 22일 |
최신 버전 | 2.2 |
공개 여부 | 예 |
공식 웹사이트 | Adobe Glyph Bitmap Distribution Format (BDF) Specification, version 2.2 |
2. 포맷 구성
BDF 글꼴 파일은 크게 세 부분으로 구성된다.[5]
# 글꼴의 모든 글리프에 적용되는 전역 섹션
# 각 글리프에 대한 별도의 항목이 있는 섹션
# ENDFONT영어 문
ENDFONT영어는 글꼴의 모든 글리프가 열거된 후 파일의 마지막 라인으로 나타난다.
2. 1. 전역 선언
STARTFONT영어 라인으로 시작하여 CHARS영어 라인으로 끝난다.[5]- STARTFONT 2.1영어은 이 BDF 파일의 버전을 버전 2.1로 정의한다.
- FONT -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1영어은 글꼴 패밀리와 면 이름을 X 논리 글꼴 설명으로 정의한다.
- SIZE 16 75 75영어는 이것이 16포인트 글꼴이며, X축 해상도는 인치당 75 도트(dpi)이고 Y축 해상도는 75 dpi라고 정의한다. 이것은 X Window에서 표준이다.
- FONTBOUNDINGBOX 16 16 0 -2영어는 글꼴의 경계 상자를 16픽셀 너비에 16픽셀 높이로 정의하며, 왼쪽 하단 모서리는 x=0, y=-2 에서 시작한다. 경계 상자는 16 x 16 셀로 정의되지만, 개별 글리프에 대해 이를 재정의할 수 있다. 예를 들어, "A" 글리프는 너비가 8픽셀이다.
- STARTPROPERTIES 2영어는 두 개의 특수 속성이 뒤따를 것이라고 선언한다. STARTPROPERTIES영어는 BDF 사양에서 선택 사항이다. X Window는 속성 FONT_ASCENT영어와 FONT_DESCENT영어를 사용하여 모든 글리프에 대해 기준선 위와 아래의 높이를 각각 표시할 수 있다. FONT_ASCENT 14영어는 높이 16픽셀 중 14픽셀이 기준선 위에 있다고 선언한다. FONT_DESCENT 2영어는 높이 16픽셀 중 2픽셀이 기준선 아래에 있다고 선언한다. ENDPROPERTIES영어는 STARTPROPERTIES영어 섹션의 끝에 나타난다.
- CHARS 1영어는 하나의 문자가 뒤따를 것이라고 선언한다. Adobe는 이제 이 파일 형식을 글리프 BDF라고 부르지만, 사양의 최종 버전에서 키워드 CHARS영어를 유지했다.
- COMMENT영어로 시작하는 라인은 BDF 파일 내에 삽입할 수 있다. 라인에서 COMMENT영어 키워드 뒤에 오는 모든 내용은 무시된다.
2. 2. 글리프 정의
각 글리프는 `STARTCHAR` 키워드로 시작하여 `ENDCHAR` 키워드로 끝난다.[2] `STARTCHAR`는 버전 2.1 이하에서는 문자의 시작을, 버전 2.2에서는 글리프의 시작을 지정한다. 버전 2.1 이하에서는 문자 이름 문자열이 14자로 제한되었으나, 버전 2.2에서는 글리프 이름 문자열이 최대 65,535자를 포함할 수 있다.`ENCODING`은 글꼴에서 이 글리프의 10진수 코드 포인트를 나타낸다.
`SWIDTH`는 X축과 Y축의 확장 가능한 너비를 선언한다. 확장 가능한 너비는 문자의 실제 포인트 크기의 1000배이며, 이는 Adobe 글꼴 메트릭 (AFM) 파일에서 사용되는 것과 동일한 단위이다.
`DWIDTH`는 글리프의 장치 너비를 선언한다. 글리프가 렌더링된 후, 다음 글리프의 시작 위치를 지정하는 오프셋 역할을 한다.
`BBX`는 글리프의 경계 상자(Bounding Box)를 선언하며, 너비, 높이, X축 및 Y축 오프셋 값을 가진다.
`BITMAP`은 현재 글리프에 대한 비트맵을 시작하며, 이후 각 줄은 16진수 표현으로 픽셀 정보를 담는다. 렌더링될 픽셀은 "1" 비트로 나타낸다. 각 줄은 8비트 경계로 반올림되고 오른쪽에 0으로 패딩된다.
`ENDCHAR`는 현재 글리프 정의를 종료한다.
`STARTCHAR`에서 `ENDCHAR`까지의 선언은 글꼴의 각 글리프에 대해 반복된다.
2. 3. 버전 2.2 확장
BDF 사양 버전 2.2는 비(非) 서구권 글꼴 지원을 추가했다. 이러한 추가 기능은 X축과 Y축에서 양수 또는 음수 이동을 통해 원점을 이동할 수 있도록 한다. 이는 오른쪽에서 왼쪽으로 쓰는 방향뿐만 아니라 위에서 아래로 쓰는 방향(예: 중국어)도 수용한다.[5]다국어 글꼴 지원을 위해 추가된 값은 다음과 같다.
- `METRICSET`은 쓰기 방향 0에 대해 0, 쓰기 방향 1에 대해 1, 동일한 글꼴 내에서 두 쓰기 방향 모두에 대해 2(초기 전역 영역)로 설정된다. 전통적인 서구식 왼쪽에서 오른쪽으로의 스크립트는 `METRICSET 0`을 사용한다.
- `SWIDTH1` 및 `DWIDTH1`은 각각 `SWIDTH` 및 `DWIDTH`와 동일한 매개변수를 갖는다. `DWIDTH1`은 `METRICSET 1` 글리프에 대해 존재해야 한다. 오프셋은 양수 또는 음수가 될 수 있다.
- `VVECTOR`는 모드 0 글리프에서 모드 1 글리프로 전환하기 위한 X축 오프셋과 Y축 오프셋을 정의한다. 반대 오프셋은 모드 1에서 모드 0 글리프로 전환하는 동안 적용된다.
이 체계는 두 가지 쓰기 방향을 쉽게 수용한다. 역사적으로 글꼴은 128 또는 256개의 코드 포인트를 가졌다. 오늘날 유니코드는 백만 개가 넘는 코드 포인트를 허용한다. 글꼴은 수천 개의 글리프를 포함할 수 있으며, 그 중 일부는 왼쪽에서 오른쪽으로, 일부는 오른쪽에서 왼쪽으로, 일부는 위에서 아래로 작성해야 한다. 이러한 다방향 쓰기는 각 글리프에 대해 `DWIDTH1` 및 `SWIDTH1`을 창의적으로 사용해야 한다.
국제 지원을 위해 추가된 키워드 외에도 버전 2.2는 `CONTENTVERSION` 선언을 추가한다. 이 키워드 뒤에는 글꼴의 버전 번호를 나타내는 정수가 온다.
3. X 윈도 속성
X 윈도 글꼴 유틸리티는 BDF 파일의 `STARTPROPERTIES` 섹션에서 지정할 수 있는 여러 속성을 지원한다.[3] 일반적인 BDF 파일은 ASCII 인코딩으로 되어 있다. X 윈도 속성은 ISO 8859-1 인코딩을 사용하여 지정하며, 이는 ASCII의 확장이다. 이러한 속성들은 다음과 같다.
속성 | 설명 |
---|---|
`CAP_HEIGHT` | 대문자의 기준선 위 높이 (캡 하이트 참조). (정수 값) |
`COPYRIGHT` | 저작권 표시. (문자열)[4] |
`DEFAULT_CHAR` | 정의되지 않은 글리프에 대해 표시할 기본 문자(글리프). (부호 없는 정수 값) |
`FACE_NAME` | 이 글꼴의 면 이름. (문자열)[4] |
`FONT` | 글꼴의 X 윈도 이름. (문자열)[4] |
`FONT_ASCENT` | 기준선 위의 높이로, 줄 간격 계산에 사용. (정수 값) |
`FONT_DESCENT` | 줄 간격 계산을 위한 기준선 아래의 디센더. (정수 값) |
`FONT_VERSION` | 글꼴의 버전. (문자열)[4] |
`FOUNDRY` | 파운드리 이름. (문자열)[4] |
`FAMILY_NAME` | 글꼴 패밀리 이름. (문자열)[4] |
`NOTICE` | 일반적인 설명. (문자열)[4] |
`POINT_SIZE` | 포인트 (타이포그래피) 참조. 별도로 지정하지 않으면 EMspace = round(POINT_SIZE/10), ENspace = round(POINT_SIZE/20), THINspace = round(POINT_SIZE/30). (정수 값) |
`RESOLUTION_X` | (부호 없는 정수 값) |
`RESOLUTION_Y` | (부호 없는 정수 값) |
`SLANT` | “R”은 로만체, “I”는 이탤릭체, “O”는 사체, “RI”는 역 이탤릭체, “RO”는 역 사체, “OT”는 기타, 숫자는 다형성 기울기 기능을 나타낸다. (문자열)[4] |
`WEIGHT_NAME` | 이 글꼴의 굵기 (“Bold”와 “Normal”이 일반적이지만, 정해진 열거형은 없다). (문자열)[4] |
`X_HEIGHT` | 소문자 “x”의 기준선 위 높이 (x-높이 참조). (정수 값) |
4. 예제
GNU 유니폰트에서 가져온 ASCII 대문자 'A'에 대한 글리프를 포함하는 BDF 글꼴 예시는 다음과 같다.
STARTFONT 2.1
FONT -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1
SIZE 16 75 75
FONTBOUNDINGBOX 16 16 0 -2
STARTPROPERTIES 2
FONT_ASCENT 14
FONT_DESCENT 2
ENDPROPERTIES
CHARS 1
STARTCHAR U+0041
ENCODING 65
SWIDTH 500 0
DWIDTH 8 0
BBX 8 16 0 -2
BITMAP
00
00
00
00
18
24
24
42
42
7E
42
42
42
42
00
00
ENDCHAR
ENDFONT
각 항목에 대한 설명은 다음과 같다.
- `STARTFONT 2.1`: BDF 파일의 버전이 2.1임을 나타낸다.
- `FONT -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1`: X 논리 글꼴 설명에 따른 글꼴 패밀리와 스타일을 정의한다.
- `SIZE 16 75 75`: 글꼴 크기가 16포인트이고, 가로 및 세로 해상도가 인치당 75 도트(dpi)임을 나타낸다.
- `FONTBOUNDINGBOX 16 16 0 -2`: 글꼴 경계 상자의 너비가 16픽셀, 높이가 16픽셀이며, 왼쪽 아래 모서리가 (0, -2) 위치에 있음을 나타낸다.
- `STARTPROPERTIES 2`: 두 개의 속성(FONT_ASCENT, FONT_DESCENT)이 뒤따름을 나타낸다.
- `FONT_ASCENT 14`: 기준선 위로 14픽셀이 있음을 나타낸다.
- `FONT_DESCENT 2`: 기준선 아래로 2픽셀이 있음을 나타낸다.
- `ENDPROPERTIES`: 속성 섹션이 끝났음을 나타낸다.
- `CHARS 1`: 하나의 문자가 뒤따름을 나타낸다.
- `STARTCHAR U+0041`: 문자의 시작을 나타내며, 유니코드에서 U+0041 (10진수 65, ASCII 문자 "A")에 해당한다.
- `ENCODING 65`: 글리프의 10진수 코드 포인트를 글꼴에 대해 선언한다.
- `SWIDTH 500 0`: 가로 500, 세로 0의 확장 가능한 너비를 나타낸다. 이 값은 Adobe 글꼴 메트릭 (AFM) 파일에서 사용되는 것과 동일한 단위로, 실제 포인트 크기의 1000배이다.
- `DWIDTH 8 0`: 장치 너비를 가로 8픽셀, 세로 0픽셀로 나타낸다.
- `BBX 8 16 0 -2`: 너비 8픽셀, 높이 16픽셀의 경계 상자를 나타내며, 왼쪽 아래 모서리가 (0, -2) 위치에 있음을 나타낸다.
- `BITMAP`: 글리프의 비트맵 데이터를 시작한다.
- `00`, `00`, `00`, `00`, `18`, `24`, `24`, `42`, `42`, `7E`, `42`, `42`, `42`, `42`, `00`, `00`: 글리프의 비트맵 데이터를 16진수로 표현한다. 각 줄은 8비트(1바이트) 경계로 반올림되고 오른쪽에 0으로 패딩된다.
- `ENDCHAR`: 현재 글리프가 끝났음을 나타낸다.
- `ENDFONT`: 글꼴 정의가 끝났음을 나타낸다.
참조
[1]
웹사이트
.bdf
https://mimetype.io/[...]
[2]
웹사이트
X Window System, Version 11, Release 3
http://www.x.org/wik[...]
1988-10
[3]
서적
X Logical Font Description Conventions
http://ftp.xfree86.o[...]
X Consortium, Inc.
2009-01-08
[4]
문서
A ISO 8859-1 character string
[5]
웹인용
X Window System, Version 11, Release 3
http://www.x.org/wik[...]
1988-10
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com