← 목록
한선씨 2026-06-27 3KB 읽기 3분

글리프조판.한선 — CIF 벡터글리프 텍스트 조판 모듈

개요

CIF 글리프 파일을 입력받아 cmd(INIT/RECT/END) 스트림으로 합성 출력하는 한선씨 모듈. 비트맵폰트(5x7)를 CIF 벡터글리프(72x84, 안티앨리어싱)로 대체하는 M2 과제.

파일 위치

  • 모듈: /Users/ef/CrownyBrowser/src/글리프조판.한선
  • CIF 글리프: /Users/ef/crowny-fonts/cifont/CrownyGothic/<유니코드HEX>.cif
  • CIF 디코더 원본: /Users/ef/CrownyBrowser/src/CIF디코더.한선
  • cmd 렌더러: /Users/ef/CrownyBrowser/src/cmd렌더러.한선

무엇을 했는지

  1. CIF디코더.한선의 핵심 씨앗 디코드 함수(트릿값/줄트릿/트릿정수/색채널)를 인라인 이식
  2. PSV 계획 파일(PLAN_FILE) 파싱: cif경로|x오프셋|y오프셋|스케일
  3. 각 CIF 글리프에 오프셋+스케일 적용 후 RECT 합성 출력
  4. 컴파일 검증: hanseonc_high 3765 큐브 생성, 에러 0
  5. 렌더 검증: 크(D06C)+D(0044) → PPM → PNG 변환, 글자 선명히 출력됨

컴파일 & 실행

bashcd /Users/ef/CrownyOS/crownyc
CROWNY_STD=libs ./hanseonc_high /Users/ef/CrownyBrowser/src/글리프조판.한선 > /tmp/글리프조판.toau

# 계획 파일 (shell에서 UTF-8→hex 변환 담당)
cat > /tmp/plan.psv << PLAN
/Users/ef/crowny-fonts/cifont/CrownyGothic/D06C.cif|5|5|1
/Users/ef/crowny-fonts/cifont/CrownyGothic/0044.cif|82|5|1
PLAN

PLAN_FILE=/tmp/plan.psv CANVAS_W=164 CANVAS_H=94 ./crownyc run /tmp/글리프조판.toau > /tmp/out.cmd
CMD_FILE=/tmp/out.cmd CROWNY_FB_PPM=/tmp/out.ppm ./crownyc run /tmp/cmd렌더러.toau
sips -s format png /tmp/out.ppm --out /tmp/out.png

외부 드라이버가 PLAN_FILE 만드는 법

bash# 문자 → 유니코드 HEX (Python 없이 printf 활용)
# 예: "크" → D06C
python3 -c "print(f'{ord(chr):04X}')"  # 또는 iconv
# 한글 33자 + ASCII 95자 지원 (CrownyGothic/CrownyMyeongjo 각 128글리프)

잔여 이슈 / 제약

  1. 65KB 캡 문제: 한선씨 읽기() STR_MAX_LEN=65536. 3글자 이상 cmd파일(>65KB)은 "END" 잘림 → 화면저장() 미실행. 해결책:
- cmd렌더러.한선버퍼파일읽기(경로)로 교체 (바이너리 64KB 우회) - 또는 글리프조판.한선에 HAL크라우니 직결 렌더 (cmd 파일 파이프 제거) - 또는 드라이버가 2글자 배치로 분할 렌더

  1. 문자→hex 변환: UTF-8 디코딩은 한선씨 약점. 드라이버(shell/Python) 담당.
  1. 스케일: 1 이하 스케일(소수) 동작 확인됨. 분수 스케일은 반올림() 처리.