문제

자신의 글꼴을 어떻게합니까? 헤비급 알고리즘 (프리 타입, Truetype, Adobe 등)을 원하지 않으며 사전 렌더링 된 비트 맵 글꼴에서는 괜찮습니다.

나는 반 알리 아스를 원하고 가능한 경우 비례적인 글꼴을 원합니다.

gimp를 사용하여 렌더링을 할 수 있다고 들었습니다 (일부 게시물 처리와 함께?)

LCD가있는 임베디드 장치를 위해 개발 중입니다. 32 비트 프로세서가 있지만 Linux를 실행하고 싶지 않습니다 (Overkill- 사용하는 기능이 너무 적은 코드/데이터 공간이 너무 많음)

C. C ++ 필요한 경우 C가 선호됩니다. 알고리즘과 아이디어/개념은 모든 언어에서는 괜찮습니다 ...

-아담

도움이 되었습니까?

해결책

오래된 데모 장면에서 나는 종종 하나의 큰 비트 맵 이미지로 글꼴로 모든 캐릭터를 그렸습니다. 코드에서, 나는 각 문자의 (x, y) 좌표와 각 문자의 너비를 저장했습니다. 높이는 일반적으로 글꼴 전체에서 일정했습니다. 공간이 문제가되지 않으면 모든 캐릭터를 그리드에 넣을 수 있습니다. 즉, 각 캐릭터의 왼쪽 상단 모서리 사이에 일정한 거리가 있습니다.

텍스트를 렌더링하면 한 번에 한 글자를 대상 위치에 복사하는 문제가됩니다. 그 당시, 나는 보통 하나의 색상을 "투명한"색상으로 예약했지만 오늘날 알파 채널을 사용할 수 있습니다.

작은 b/w 글꼴에 사용할 수있는 더 간단한 접근법은 코드에서 문자를 직접 정의하는 것입니다.

LetterA  db 01111100b
         db 11000110b
         db 11000110b
         db 11111110b
         db 11000110b
         db 11000110b

XPM 파일 형식은 실제로 문자를 저장하기위한 하이브리드 솔루션으로 사용할 수있는 C 구문이있는 파일 형식입니다.

다른 팁

사전 렌더링 된 비트 맵 글꼴은 아마도 갈 길일 것입니다. 글꼴을 무엇이든 사용하여 글꼴을 렌더링하고, 캐릭터를 그리드에 배열하고, PPM, BMP 또는 TGA와 같은 단순한 압축 형식으로 이미지를 저장하십시오. 항아리아를 원한다면 투명성을 지원하는 형식을 사용해야합니다 (BMP 및 TGA DO; PPM은 그렇지 않음).

비례 너비를 지원하려면 그리드에서 각 문자의 너비를 추출해야합니다. 이 작업을 수행하는 간단한 방법은 없으며 그리드를 생성하는 방법에 따라 다릅니다. 아마도 각 캐릭터를 분석하고 최소한의 경계 상자를 찾기 위해 짧은 작은 프로그램을 작성할 수 있습니다. 너비 데이터가 있으면 각 문자의 좌표와 크기가 포함 된 보조 파일에 넣습니다.

마지막으로, 문자열을 렌더링하기 위해 각 문자를 찾아서 글꼴 비트 맵에서 프레임 버퍼로 사각형을 비트 블리트하여 문자의 너비로 래스터 위치를 발전시킵니다.

우리는 글꼴에 SRGP 패키지를 성공적으로 사용했습니다. 우리는 고정 피치 글꼴을 사용 했으므로 비례 글꼴이 될 수 있는지 확실하지 않습니다.

We're using bitmap fonts generated by anglecode#s bitmap font generator :

http://www.angelcode.com/products/bmfont/

This is very usable as it has XML output which will be easy to convert to any data format you need.

Angel Code's bmfont also adds kerning and better packing to the old alternative that was MudFont.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top