이 저장소는 마이크로 톤 디스플레이 드라이버와 함께 사용할 글꼴을 작성하고 배포하는 방법을 정의합니다. PC 유틸리티는 산업 표준 글꼴 파일을 Python sourcecode 형태로 비트 맵으로 렌더링합니다. Micropython 모듈을 사용하면 이러한 파일을 적합한 장치 드라이버가있는 장치에 표시 할 수 있습니다. 여기에는 SSD1306 칩과 공식 장치 드라이버를 사용한 OLED 디스플레이가 포함됩니다. 다양한 디스플레이 기술에 대한 호환 드라이버는 Nano-Gui 저장소의 일부로 제공됩니다.
Micropython 플랫폼은 일반적으로 RAM이 제한적이지만 플래시 메모리 형태로 더 풍부한 스토리지를 가지고 있습니다. 글꼴 파일은 비교적 큰 경향이 있습니다. 장치에 문자열을 렌더링하는 기존 기술에는 전체 글꼴을 RAM에로드하는 것이 포함됩니다. 이것은 빠르지 만 RAM 집약적입니다. 글꼴을 임의의 액세스 파일로 저장하고 개별 글리프를 RAM에 RAM에로드하는 대안은 대부분의 디스플레이 장치에서 합리적인 성능을 제공하기에는 너무 느립니다.
이 대안은 글꼴을 파이썬 소스 파일로 구현하며 데이터는 bytes 객체로 선언됩니다. 이러한 파일은 바이트 코드로 동결 될 수 있습니다. 여기에는 특정 디렉토리의 Python 파일이있는 소스에서 펌웨어를 구축하는 것입니다. 가져 오기에는 RAM이 거의 사용되지 않지만 데이터에 빠르게 액세스 할 수 있습니다. 냉동 바이트 코드의 사용은 전적으로 선택 사항입니다. RAM 사용이 문제가되지 않으면 글꼴 파일을 일반적인 방식으로 가져올 수 있습니다.
결과 파일은 두 가지 종류의 디스플레이 장치 드라이버로 사용할 수 있습니다.
framebuffer 클래스에서 서브 클래스가있는 드라이버.여기에는 4 가지 구성 요소가 포함됩니다. 아래 문서에 대한 링크.
Writer 클래스와의 호환성 보장에 대한 정보를 제공합니다. 이 명령 줄 유틸리티는 Python 3에 작성되어 PC에서 실행됩니다. 확장 가능한 글꼴을 Python으로 변환하려면 유틸리티는 픽셀의 높이와 함께 ttf 또는 otf 양식의 글꼴 파일을 입력하고 글꼴을 비트 맵으로 포함하는 Python 소스 파일을 출력합니다. 고정 및 가변 피치 렌더링이 지원됩니다. 디자인에는 다음과 같은 목표가 있습니다.
첫 번째는 하드웨어 별 인수를 유틸리티에 제공하여 달성됩니다. 이들은 수평 또는 수직 매핑과 글꼴 데이터의 비트 순서를 정의합니다.
두 번째는 프리 타입과 프리 타입 파이썬 바인딩을 사용하여 달성됩니다. 그것의 사용은 여기에 문서화되어 있습니다. 이것은 또한 냉동 바이트 코드로 저장된 글꼴을 가져올 때 RAM 사용의 측정을 자세히 설명합니다.
확장 가능한 ttf 또는 otf 파일을 프로그래밍 방식으로 변환하면 더 큰 글꼴에 가장 적합합니다. 작은 글꼴의 경우 손으로 디자인 된 비트 매핑 된 글꼴 파일을 사용하는 것이 가장 좋습니다. bdf 또는 pcf 글꼴 파일은 확장 가능한 글꼴에서 유래 한 파일과 동일한 형식으로 Python 소스로 변환 될 수 있습니다. 호환 가능한 작은 글꼴 ( examples/fonts )을 포함하는 Micropyezfonts도 참조하십시오.
커닝은 지원되지 않습니다. 글꼴은 픽셀 당 1 비트입니다. 컬러 디스플레이는 렌더링 단계에서 색상 정보를 추가하는 CWriter 클래스에서 지원됩니다. 이것은 문자의 모든 픽셀이 동일하게 채색된다고 가정합니다.
기본적으로 font_to_py.py 유틸리티는 chr(32) 에서 chr(126) 로 설정된 ASCII 문자를 생성합니다. 명령 줄 옵션을 사용하면 임의의 유니 코드 문자를 포함하도록 설정된 문자를 수정할 수 있습니다. 영어가 아닌 언어와 같은 대체 세트를 지정할 수 있습니다. 희소 문자 세트에 대한 효율적인 지원이 제공됩니다.
글꼴 파일은 일반적인 방식으로 가져옵니다. 예를 들어 import font14 . 파이썬 글꼴 파일에는 다음 기능이 포함되어 있습니다. 이 반환 값은 font_to_py.py 에 제공된 인수에 의해 정의 된 값 :
height 픽셀의 높이를 반환합니다.
max_width 픽셀로 글리프의 최대 너비를 반환합니다.
baseline 오프셋 Glyph에서 기준선까지.
글꼴이 수평 맵핑되면 hmap True 반환합니다.
비트 반전이 지정된 경우 reverse 리턴이 True .
Monospaced 렌더링이 지정된 경우 monospaced True 반환합니다.
min_ch 파일에서 가장 낮은 문자의 서수 값을 반환합니다.
max_ch 파일에서 가장 높은 문자의 서수 값을 반환합니다.
글리프는 get_ch 함수로 반환됩니다. 인수는 유니 코드 문자이며 다음 값을 반환합니다.
memoryview 객체. font_to_py.py 유틸리티를 사용하면 기본 글리프를 지정할 수 있습니다 (일반적으로 ? ). 정의되지 않은 캐릭터로 호출되면이 글리프가 반환됩니다.
min_ch 및 max_ch 함수는 주로 연속 문자 세트와 관련이 있습니다.
모든 코드는 MIT 라이센스에 따라 해제됩니다.