PicoPixel

fonts 사용하기

LVGL fonts에 변환이 필요한 이유, bundled 또는 uploaded font에서 font를 만드는 방법, Arabic과 Hebrew 같은 right-to-left scripts 설정, 큰 CJK fonts 처리, 사용하지 않는 fonts 정리를 알아봅니다.

ED Ed
font picopixel lvgl
업데이트 2026-05-29
01 /07

개요

임베디드 디바이스의 fonts는 컴퓨터의 fonts와 조금 다르게 작동합니다. 이 가이드는 그 이유를 설명한 뒤 PicoPixel에서 fonts를 만드는 과정을 안내합니다. bundled font를 고르거나 직접 업로드하는 것부터 Arabic과 Hebrew 같은 right-to-left languages 처리, Chinese, Japanese, Korean에 쓰이는 매우 큰 fonts 관리까지 다룹니다. 마지막으로 실험을 많이 한 뒤 유용한 정리 기능도 소개합니다.

PicoPixel 편집기 캔버스에 Cyrillic, Thai, Chinese, Greek, Korean, Japanese, Arabic scripts의 다국어 label widgets가 표시되고, 왼쪽 fonts panel에는 10개의 loaded fonts, 오른쪽에는 label properties가 보입니다
▸ PicoPixel은 다양한 scripts를 지원합니다 — 각 label은 서로 다른 font와 language를 사용합니다.
02 /07

왜 fonts를 변환해야 하나요?

노트북에서 font file(.ttf 또는 .otf)은 각 글자를 수학적 곡선으로 설명합니다. 컴퓨터는 원하는 크기에서 그 곡선을 부드럽게 그릴 충분한 성능과 메모리가 있습니다.

작은 디바이스(ESP32, smartwatch chip, 작은 display controller)는 보통 그렇지 못합니다. 즉석에서 곡선을 다시 그릴 메모리나 처리 능력이 부족합니다. 그래서 LVGL은 다른 방식을 사용합니다. 곡선 대신 각 글자를 고정 크기의 미리 그린 작은 그림(bitmap)으로 저장합니다. 이것이 디바이스가 처리하기 훨씬 가볍습니다.

PicoPixel은 이 변환을 대신 해 줍니다. font를 만들 때 원본 font file을 가져와 LVGL이 필요로 하는 bitmap format으로 바꾸며, 원하는 letters와 sizes만 골라 넣습니다.

NOTE

각 글자는 고정 크기로 미리 그려지므로 변환된 LVGL font는 선택한 크기에 고정됩니다. 16px font를 32px로 늘려도 선명하게 보이지 않습니다. 두 가지 크기의 텍스트가 필요하면 두 크기로 font를 만들어야 합니다(아래 Creating a font에서 여러 sizes를 한 번에 선택할 수 있습니다).

이것이 fonts가 디바이스에서 실제 비용을 갖는 이유이기도 합니다. 각 글자, 각 크기가 메모리를 조금씩 차지합니다. 이 가이드의 대부분은 그 비용을 작게 유지하는 것, 즉 실제로 사용하는 characters와 sizes만 포함하는 방법에 관한 것입니다.

03 /07

Bundled fonts와 직접 가져온 fonts

font를 만들 때 시작점은 두 가지입니다.

  • Bundled, 바로 사용할 수 있는 인기 있고 잘 테스트된 fonts 모음입니다: Noto Sans, Roboto, Open Sans, Montserrat, Poppins, Inter, Lato, Nunito, Source Sans 3 등. 안전한 선택이자 좋은 기본값입니다.
  • Upload, 직접 .ttf 또는 .otf 파일을 가져옵니다. 특정 brand font가 있거나 bundled fonts가 지원하지 않는 언어를 다룰 때 사용합니다.
TIP

직접 font를 업로드한다면 Roboto-VariableFont.ttf 같은 "variable" font file보다 Roboto-Regular.ttf 같은 static font file을 사용하세요. static files가 훨씬 안정적으로 변환됩니다. 일반 .ttf 파일이 가장 잘 작동하는 편입니다.

어느 쪽을 선택하든 live preview가 있어 직접 텍스트를 입력하고 만들기 전에 정확히 어떻게 보일지 확인할 수 있습니다.

04 /07

font 만들기

Create Font panel을 열면 짧은 양식이 보입니다. 각 부분은 다음 역할을 합니다.

PicoPixel Create Font panel에서 Bundled tab이 active이고 Doto Regular font가 선택되어 있으며 live preview에 Hello World Test!가 보이고 sizes 16과 48이 선택되어 있으며 Letters는 Standard, Advanced section에는 Bits per Pixel 4 bpp, Ranges, Symbols fields가 표시됩니다
▸ Create Font panel: bundled font를 고르고, 텍스트를 preview하고, 여러 sizes를 한 번에 선택하며, bits per pixel과 character ranges 같은 advanced settings를 조정합니다.
  1. Pick your font, Bundled font(Regular 또는 Bold 같은 weight 포함)를 고르거나 Upload tab으로 전환해 직접 파일을 선택합니다.
  2. Font Name, 프로젝트 font list에 표시될 이름입니다. 여러 개를 쓸 예정이라면 특히 기억하기 좋은 이름을 붙이세요.
  3. Size (px), font의 pixel size입니다. 여러 크기를 한 번에 선택할 수 있습니다(16, 22, 32 같은 편리한 presets가 있습니다). 각 size는 따로 생성되므로 정말 사용할 것만 고르세요.
  4. Letters, 포함할 character set을 선택합니다: Standard(basic English), Latin, Greek, Cyrillic, Hebrew, Arabic, Thai 등. PicoPixel에 어떤 언어의 letters가 필요한지 알려 주는 곳입니다.
  5. Asian, Chinese, Japanese, Korean을 위한 별도 옵션입니다. 특별한 처리가 필요하며 아래 its own section에서 다룹니다.

세밀한 조정을 위한 Advanced 영역도 있습니다. Bits per Pixel(각 글자에 쓰는 회색 단계 수, 높을수록 부드럽지만 공간을 더 사용합니다. 4가 좋은 기본값)과 정확한 character ranges 또는 symbols를 직접 지정하는 fields가 있습니다. 대부분의 사람은 건드릴 필요가 없습니다.

TIP

모든 font가 모든 언어를 포함하는 것은 아닙니다. non-Latin script를 선택했는데 preview에 글자가 아니라 빈 상자가 보이면 그 font는 해당 script를 지원하지 않습니다. 해당 script용 Bundled font로 바꾸거나 지원하는 font를 업로드하세요. 모든 fonts가 지원하지 않는 script를 선택하면 PicoPixel이 경고합니다.

05 /07

Right-to-left scripts: Arabic & Hebrew

Arabic과 Hebrew 같은 언어는 오른쪽에서 왼쪽으로 읽고, 글자도 특별한 처리가 필요합니다. 다행히 Create Font panel에서 바로 설정할 수 있으며, 손으로 설정할 것은 없습니다.

  1. Letters dropdown에서 Arabic 또는 Hebrew를 선택합니다. 중요한 단계입니다. 해당 script에 맞는 character set을 포함하라고 PicoPixel에 알려 줍니다(basic English letters도 함께 포함되므로 numbers와 Latin text도 작동합니다).
  2. PicoPixel은 해당 script용으로 만들어진 font, 예를 들어 Noto Sans Arabic을 제안합니다. 글자가 들어 있지 않은 평범한 Latin font보다 제안된 것(또는 script-aware font)을 사용하세요.
  3. live preview를 확인합니다. 글자가 거기서 올바르게 렌더링되면 괜찮습니다. 상자가 보이면 선택한 font가 script를 지원하지 않는 것이므로 다른 것을 고르세요.
NOTE

Arabic letters는 단어 안의 위치에 따라 모양이 바뀌고, 전체 줄도 오른쪽에서 왼쪽으로 흐릅니다. 프로젝트를 내보낼 때 PicoPixel은 Arabic, Persian, Hebrew text 사용을 자동 감지하고 연결된 글자 모양을 위한 LVGL 설정을 켭니다. 디바이스에서 올바르게 보이도록 설정 파일을 뒤질 필요가 없습니다.

WARNING

핵심은 font를 만들 때 Letters dropdown에서 Arabic 또는 Hebrew를 선택해야 해당 characters가 들어온다는 것입니다. 먼저 plain font를 만들고 나중에 right-to-left text를 추가하면 글자가 없습니다. 처음부터 올바른 script를 선택해 font를 만드세요.

06 /07

Chinese, Japanese & Korean

PicoPixel CJK Font Setup dialog가 CJK fonts에는 수천 characters가 들어 있고 지정한 characters만 포함된다고 설명하며, UI text를 Symbols field에 붙여 넣기, 호환 fonts 자동 선택, Google Fonts에서 다운로드, 더 많은 characters를 위한 additional fonts 생성 tips를 보여 줍니다
▸ Asian language를 선택하면 CJK Font Setup guide가 나타나 font size를 관리하기 위한 핵심 단계를 안내합니다.

CJK는 Chinese, Japanese, Korean의 일반적인 약어입니다. 이 언어들은 characters가 매우 많기 때문에 특별합니다. Korean은 약 11,000개, Chinese는 20,000개가 훨씬 넘습니다. 모든 character는 미리 그려져 디바이스에 저장된다는 점을 기억하세요. 전체 CJK font를 포함하면 메가바이트 단위가 될 수 있고, 대부분의 임베디드 디바이스에는 맞지 않습니다.

해결책은 실제로 사용하는 characters만 포함하는 것입니다. 일반적인 인터페이스는 서로 다른 characters를 백 개 정도만 표시할 수 있고, 비교하면 아주 작습니다.

방법은 다음과 같습니다.

  1. Asian dropdown에서 Korean, Chinese, 또는 Japanese를 선택합니다.
  2. Symbols field(Advanced 영역)를 찾아 인터페이스가 실제로 표시할 텍스트를 붙여 넣습니다. 모든 label, button, message를 포함하세요. PicoPixel은 거기서 찾은 각 character에 대해서만 glyph를 포함합니다.
    • 시작을 돕기 위해 PicoPixel은 선택한 언어의 일반적인 인터페이스 단어("Settings", "Confirm", "Cancel" 등)를 이 field에 미리 채웁니다. 자신의 텍스트를 추가하세요.

이렇게 하면 몇 메가바이트가 될 수 있던 font가 몇백 킬로바이트로 끝날 수 있습니다.

WARNING

Symbols에 나열한 characters만 포함됩니다. 나중에 인터페이스가 추가하지 않은 character를 표시하면 빈 상자로 나타납니다. 텍스트가 바뀌면 Symbols field를 업데이트하고 font를 다시 만드세요.

TIP

CJK에서는 일반 font에 의존하기보다 원하는 specific font를 업로드하는 것이 가장 많은 제어권을 줍니다. 인터페이스 텍스트의 완성본 전체를 붙여 넣으면 빠지는 것이 없습니다.

PicoPixel Advanced section에서 Korean이 선택되어 있고 Symbols field에는 settings, confirm, cancel, edit, search 등 Korean UI text가 채워져 있어 해당 characters만 font에 포함됩니다
▸ 인터페이스가 표시하는 모든 텍스트를 Symbols field에 붙여 넣으세요 — 그 characters만 font에 구워집니다.
07 /07

정리: 사용하지 않는 fonts 삭제하기

Fonts는 공간을 차지하고, 실험하다 보면 더 이상 필요 없는 것들이 쉽게 쌓입니다. 예를 들어 16px와 22px 중 무엇이 더 나은지 몰라 둘 다 만들어 시험할 수 있습니다. 결정한 뒤 다른 하나는 불필요한 무게입니다.

PicoPixel은 이를 쉽게 처리합니다. assets의 Fonts 영역에는 Delete Unused Fonts 버튼이 있습니다. 프로젝트의 모든 widget을 스캔하고 실제로 아무것도 사용하지 않는 fonts를 찾아 한 번의 클릭으로 제거합니다. 남은 것을 치우고 필요한 fonts를 위한 공간을 확보할 수 있습니다.

TIP

sizes를 실험하는 쉬운 방법입니다. 몇 가지 sizes를 만들고 디자인에 맞는 것을 확인한 뒤 Delete Unused Fonts를 눌러 나머지를 정리하세요. 목록의 각 font는 size와 quality settings를 보여 주므로 한눈에 파악하기 쉽습니다.

NOTE

"Delete Unused Fonts"는 어떤 widget도 참조하지 않는 fonts만 제거하므로 디자인은 바뀌지 않습니다. 목록에서 단일 font를 오른쪽 클릭해 직접 삭제할 수도 있습니다. 실수로 지웠다면 undo가 바로 되돌립니다.

다음 글

계속 읽기.

PicoPixel에서 펫 사용하기 thumbnail
PICOPIXEL

PicoPixel에서 펫 사용하기

펫은 어떤 조건에서든 트리거할 수 있는 여러 모드를 갖춘 완성된 애니메이션 스프라이트입니다. 디렉토리에서 하나를 골라 프로젝트에 추가한 다음, 데이터 가져오기, 과열, 코드 리뷰 등 기기가 하는 모든 일에 반응하도록 연결하세요.

pets · sprites · picopixel
PicoPixel templates, UI kits, full apps 사용 방법 thumbnail
PICOPIXEL

PicoPixel templates, UI kits, full apps 사용 방법

PicoPixel templates, UI kits, examples, sprites, widgets, full app files를 찾고, 열고, 다운로드하고, import하고, customize한 뒤 디바이스용 LVGL C code로 export합니다.

templates · ui-kits · full-apps
sprite란 무엇인가요? thumbnail
PICOPIXEL

sprite란 무엇인가요?

sprite가 무엇인지, 여러 상태를 가진 animated widgets를 만드는 방법, 프로젝트 간에 재사용하는 방법을 알아봅니다.

sprite · picopixel