LVGL

LVGL Animated Image 위젯 사용하기

LVGL 애니메이션 이미지 위젯의 작동 방식: 같은 크기의 프레임 시퀀스를 업로드하고, 재생 시간과 반복을 설정해 디스플레이에서 프레임 단위 애니메이션을 재생하는 방법을 알아봅니다.

EDEd
lvglanimated-imageanimimganimationframespicopixel
업데이트2026-05-29
01/10

개요

애니메이션 이미지 위젯은 화면에 움직임을 넣는 가장 간단한 방법입니다. 회전하는 로더, 튀어 오르는 아이콘, 깜박이는 눈 같은 것들을 만들 수 있습니다. 이 가이드는 PicoPixel에서 LVGL 애니메이션 이미지 위젯이 어떻게 작동하는지 설명합니다. 추가하는 방법, 모든 프레임의 크기가 같아야 하는 이유, 속도와 반복을 제어하는 법, 인터페이스가 실행되는 동안 시작하고 멈추는 방법을 다룹니다.

02/10

애니메이션 이미지 위젯이란?

애니메이션 이미지는 정지 이미지 여러 장을 차례대로 재생합니다. 플립북과 비슷합니다. 각 이미지는 프레임이고, 빠르게 넘기면 움직이는 것처럼 보입니다. 프레임 세트를 넘겨주고 재생 속도와 반복 여부를 알려주면 나머지는 위젯이 처리합니다.

로딩 스피너, 박동하는 하트, 손을 흔드는 아이콘처럼 하나의 애니메이션을 반복해서 재생하는 데 적합합니다.

NOTE

내부적으로는 LVGL의 lv_animimg 위젯입니다. 프로젝트를 내보내면 PicoPixel이 LVGL 코드(lv_animimg_create, lv_animimg_set_src, lv_animimg_set_duration 등)를 작성해 줍니다. 직접 만질 필요가 없습니다. 대상은 LVGL 8.x입니다.

03/10

애니메이션 이미지와 스프라이트: 무엇을 써야 할까요?

두 위젯은 비슷해 보이지만 해결하는 문제가 다릅니다.

  • 애니메이션 이미지는 반복되는 하나의 애니메이션입니다. 그래픽이 스피너처럼 항상 한 가지 동작만 할 때 사용하세요.
  • **스프라이트**는 하나의 위젯 안에 여러 애니메이션을 담고, 그 사이를 전환할 수 있습니다(Idle, Running, Happy 등). 그래픽에 둘 이상의 모드가 필요할 때 사용하세요.

사실 스프라이트는 애니메이션 이미지들로 만들어집니다. 각 모드는 내부적으로 자기만의 애니메이션 이미지입니다. 따라서 두 가지 이상의 애니메이션을 전환하며 재생하려면 스프라이트를 사용하세요.

04/10

애니메이션 이미지 추가하고 프레임 업로드하기

  1. 화면에 Animated Image 위젯을 추가합니다.
  2. 속성에서 Image Set 행을 찾아 Add Image Set을 클릭합니다.
  3. NEW 탭에서 업로드 영역("Click to upload frames")을 클릭하고 이미지를 선택합니다. 여러 장을 한 번에 고를 수 있으며 형식은 PNG와 JPEG(.png, .jpeg, .jpg)입니다.
  4. Continue를 클릭해 프레임을 위젯에 연결합니다. Image Set 행에는 프레임 수가 표시됩니다(예: "8 frames").

이미 사용한 프레임 세트는 다시 업로드하지 않고 Assets 탭에서 가져올 수도 있습니다.

9프레임 Nyan Cat 스프라이트가 로드된 애니메이션 이미지 위젯을 보여주는 PicoPixel 편집기. 아래에는 프레임 필름스트립이 있고 오른쪽 속성 패널에는 이미지 세트, 반복 횟수, 재생 시간, 재생 설정이 표시됩니다
▸ 9개 프레임을 1000 ms 동안 무한 반복하도록 설정한 Animated Image 위젯.
TIP

프레임은 파일 이름의 알파벳순으로 정렬되므로 frame_01.png, frame_02.png, frame_03.png처럼 앞에 0을 붙여 순서대로 이름을 지정하세요. frame_2.png 같은 이름은 frame_10.png 뒤에 정렬되어 애니메이션 순서를 망가뜨립니다.

NOTE

애니메이션 이미지에는 최소 2프레임이 필요하고 최대 32프레임까지 추가할 수 있습니다. 더 많은 움직임이 필요하다면 프레임 수를 줄이고 잘 고른 키프레임을 사용하는 것을 고려하세요. 모든 프레임은 디바이스에 저장됩니다.

05/10

모든 프레임 크기가 같아야 하는 이유

기억해야 할 규칙은 하나입니다. 모든 프레임은 정확히 같은 너비와 높이를 가져야 합니다. 서로 다른 크기의 프레임을 추가하려 하면 PicoPixel은 "All frames must have the same dimensions." 메시지와 함께 막습니다.

이유는 간단합니다. 위젯은 각 프레임을 같은 위치, 같은 박스 안에 그립니다. 1번 프레임이 64×64이고 2번 프레임이 80×80이면 제자리에서 부드럽게 움직이는 대신 그림이 튀고 흔들립니다. 모든 프레임 크기를 같게 맞춰야 움직임이 자연스럽습니다.

WARNING

업로드하기 전에 프레임 크기를 맞추세요. 깔끔한 시퀀스를 만드는 가장 빠른 방법은 이미지 도구에서 같은 캔버스로 모든 프레임을 내보내는 것입니다. 그러면 치수가 같다는 것이 보장됩니다.

06/10

재생 시간으로 속도 조절하기

Duration 설정은 애니메이션 재생 속도를 제어합니다. 단위는 **밀리초(ms)**이며, 프레임 하나의 시간이 아니라 모든 프레임을 한 번 완전히 재생하는 시간을 뜻합니다. 기본값은 1000 ms(1초)입니다.

PicoPixel은 이 시간을 프레임 전체에 균등하게 나눕니다. 따라서 8프레임에 1000 ms를 설정하면 각 프레임은 125 ms씩 표시됩니다. 더 빠르게 하려면 재생 시간을 낮추고, 더 느리고 여유 있게 하려면 올리세요.

07/10

반복: 한 번 재생하거나 계속 재생하기

Repeat 설정은 애니메이션이 끝에 도달했을 때 어떻게 할지 결정합니다. 선택지는 두 가지입니다.

  • Infinite는 애니메이션을 계속 반복합니다. 기본값이며, 멈추지 않아야 하는 스피너에 적합합니다.
  • **Normal(횟수)**은 지정한 횟수만큼 재생한 뒤 멈춥니다. 3으로 설정하면 세 번 재생하고 마지막 프레임에 머뭅니다.
08/10

UI 실행 중 재생 제어하기

애니메이션을 항상 자동으로 돌릴 필요는 없습니다. 이벤트 에디터를 사용하면 사용자 동작에 반응해 시작하고 멈출 수 있습니다. 이벤트를 추가하고 Animated Image Mode 액션을 선택한 다음 애니메이션 이미지를 가리키고 모드를 고르세요.

  • Start는 재생을 시작(또는 재개)합니다.
  • Stop은 애니메이션을 일시정지합니다.
  • Restart는 첫 프레임으로 돌아가 다시 재생합니다.

예를 들어 "연결 중…" 스피너를 버튼이 눌릴 때까지 멈춰 두었다가 Start하고, 작업이 끝나면 Stop할 수 있습니다.

09/10

메모리를 가볍게 유지하기

애니메이션은 결국 이미지이고, 이미지는 작은 디바이스에서 공간을 차지합니다. 다음 습관이 효율을 높여 줍니다.

  • 필요한 프레임만 사용하세요. 부드러운 움직임에도 잘 고른 몇 장의 프레임이면 충분한 경우가 많습니다.
  • 프레임 크기를 적당히 유지하세요. 64×64 애니메이션은 240×240보다 훨씬 가볍습니다.
  • 색상 깊이를 디스플레이에 맞추세요(실제 하드웨어 빌드는 ESP32 튜토리얼 참고).
TIP

펌웨어로 내보내는 경우 애니메이션 이미지에는 lv_conf.h에서 LV_USE_ANIMIMG가 활성화되어 있어야 합니다. 내보낸 README.md에 필요한 설정이 적혀 있습니다. 빌드할 때 직접 확인하거나 AI 어시스턴트에게 참고하도록 하세요.

10/10

다음 단계

다음 글

계속 읽기.

PicoPixel에서 펫 사용하기 thumbnail
PICOPIXEL

PicoPixel에서 펫 사용하기

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

pets · sprites · picopixel
PicoPixel 템플릿, UI 키트, 완성된 앱 사용 방법 thumbnail
PICOPIXEL

PicoPixel 템플릿, UI 키트, 완성된 앱 사용 방법

PicoPixel 템플릿, UI 키트, 예제, 스프라이트, 위젯, 완성된 앱 파일을 찾고, 열고, 다운로드하고, 가져오고, 수정한 뒤 디바이스용 LVGL C 코드로 내보냅니다.

templates · ui-kits · full-apps
PicoPixel LVGL MCP Server Setup Guide thumbnail
PICOPIXEL

PicoPixel LVGL MCP Server Setup Guide

Set up the PicoPixel LVGL MCP server for Claude, ChatGPT, Codex, or Cursor. Learn agent settings, reusable components, colors, fonts, and assets.

LVGL MCP · MCP server setup · AI UI design