맨위로가기

BDF (파일 포맷)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의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