NP21 등 PC98에뮬 등에서 쓰이는 폰트이미지 파일 편집 후, 저장 요령
== 먼저 makefont32를 사용해서 bmp파일을 만들어도 되고... 어디선가 bmp파일을 구해와도 되고...
특정 pc98에뮬을 위한 폰트용 bmp파일이 있었을 때,
해당 폰트 파일에 마음에 안 드는 부분이 있어 수정하고 싶어질 때 해당하는 이야기.
우선, 지금 우리가 사용하려는 흑백 BMP 이미지 파일의 구조에 대해서 알아보자.
헥스에디터 등으로 해당 BMP 파일을 열어보면, 대략 헤더라 불리는 메타데이터가 기록되는 구간과 일반 데이터가 들어가는 바디부분으로 구성되어 있다.
------헤더----- -맨 아래끝의픽셀-----// //---------맨 위끝의 픽셀들--
[메타데이터] - [FFFFFFFFFFFFFFFF00FFFFFFFFFFFF00123456789ABCDEF.....블라블라...]
메타데이터로 시작하고, 그 다음부터는, bmp 이미지의 맨 하단에 해당하는 픽셀부터 1:1로 1bit 색상데이터들(흑백)이 차곡차곡 쌓여지는 형태로 써 내려가진다.
그러므로 FF는 흰색, 00은 검은색. 다시 말하면, 1는 흰색이고, 0는 검은색인 것이다. 그 뿐이다.
메타데이터: 62bytes [0h ~ 3Dh]
bmp이미지정보(2048x2048 pixel): 524,288bytes [3Eh ~ 80003Fh]
총 bmp 이미지 파일 크기: 524,350bytes
이제 본격적으로 시작해 보자.
해당되는 원본 bmp파일을 포토샵으로 수정후에, grayscale --> bitmap 형식으로 조정한다.
여기서 저장 전에 해당 이미지를 한번 invert 시켜서 색상을 역전시켜 준다.
그리고 다른 이름의 새bmp 파일로 적당히 저장한다.
이때, 원본과는 다르게, 새bmp 파일은 NP21 등의 에뮬에서 폰트로써 불러올 때, 당장은 아예 인식조차 되지 않을 것이다.
헤더 값이 일반 bmp 이미지와는 좀 달라서 그런 것인데... 수정 방법은 간단하다.
그냥 다른 정상적인 폰트용 이미지들로부터 첫머리의 적당한 크기만큼(0~3Dh)의 코드들을 복사해서 새bmp 파일에 붙여 넣어주면 된다.
요약하자면,
1. 원본 bmp 이미지 편집/수정
2. 새bmp 파일로 저장 전에 invert
3. 헥스에디터로 새bmp 파일 첫머리 수정(offset: 0h~3Dh까지) 후 저장:
아래의 [더보기]란에 필요 헤더값들을 넣어놓았다. 복붙하되 덮어쓰기 형태로 붙여넣어야 한다.
물론 맞는 위치에....
42 4D 3E 00 08 00 00 00 00 00 3E 00 00 00 28 00 00 00 00 08 00 00 00 08 00 00 01 00 01 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00 00 00 00 01 FF FF FF 01