LVGL 이미지 변환기

PNG, JPG, WebP 이미지를 임베디드 GUI 프로젝트용 LVGL v8 lv_img_dsc_t C 배열로 변환하세요. True Color, True Color Alpha, LV_COLOR_16_SWAP 옵션을 지원합니다.

LVGL 이미지 변환기

파일은 브라우저 로컬에서만 처리됩니다. 이미지 데이터는 서버로 업로드되지 않습니다.

입력 및 옵션

아직 선택된 이미지가 없습니다.
이미지를 선택하면 LVGL 이미지 배열을 생성합니다.

미리보기 및 출력

원본

RGB565 양자화

픽셀 수-
출력 바이트-
예상 플래시 사용량-
색상 형식-

LVGL C 출력

LVGL 이미지(lv_img_dsc_t)란?

LVGL은 이미지를 lv_img_dsc_t 구조체로 표현합니다. 너비·높이·색상 형식을 담은 헤더와 원본 픽셀 데이터를 가리키는 포인터로 구성됩니다. 이 도구는 LVGL v8 기준으로 픽셀 데이터 배열과 그에 맞는 lv_img_dsc_t 디스크립터를 함께 생성해 바로 펌웨어에 컴파일할 수 있게 해줍니다.

True Color와 True Color Alpha의 차이

LV_IMG_CF_TRUE_COLOR는 픽셀당 2바이트(RGB565)를 저장하는 완전 불투명 형식으로, 투명한 원본 픽셀은 지정한 알파 배경색으로 합성됩니다. LV_IMG_CF_TRUE_COLOR_ALPHA는 픽셀당 3바이트(RGB565 + 알파 바이트)를 저장해 실제 투명도를 유지하며, 다른 배경 위에 그려지는 아이콘에 자주 사용됩니다.

생성된 배열을 LVGL에서 사용하는 방법

생성된 코드를 프로젝트의 .c 파일에 추가하고, 헤더 파일에 LV_IMG_DECLARE(이름)를 선언한 뒤 이미지 위젯에 lv_img_set_src()로 지정하세요. 아래 변수 이름이 C 변수명과 픽셀 데이터 배열명에 그대로 사용됩니다.

LV_IMG_DECLARE(my_icon);

lv_obj_t * img = lv_img_create(lv_scr_act());
lv_img_set_src(img, &my_icon);
lv_obj_center(img);

LV_COLOR_16_SWAP과 색상이 이상하게 보이는 문제

LVGL은 각 RGB565 픽셀을 프로세서의 기본 바이트 순서(대부분의 MCU에서 리틀엔디언)로 16비트 값으로 저장합니다. 일부 SPI 디스플레이 드라이버는 전송 시 두 바이트가 바뀐 순서를 기대합니다. 이미지가 깨지거나 색상 채널이 뒤바뀐 것처럼 보이면 lv_conf.h 설정에 맞춰 여기서 LV_COLOR_16_SWAP을 켜거나 꺼보세요.

LVGL v9도 지원하나요?

이 도구는 여전히 대다수의 배포된 LVGL 프로젝트와 튜토리얼이 사용하는 LVGL v8의 lv_img_dsc_t 형식을 대상으로 합니다. LVGL v9은 필드 구성과 색상 형식 열거형이 다른 lv_image_dsc_t 헤더로 교체되었으므로, v9 프로젝트는 헤더 필드를 직접 조정해야 합니다. 픽셀 데이터(RGB565 바이트) 자체는 그대로 재사용할 수 있습니다.

FAQ

lv_img_dsc_t란 무엇인가요?

lv_img_dsc_t는 이미지를 설명하는 LVGL v8 구조체로, 너비·높이·색상 형식 비트필드를 담은 헤더와 데이터 크기, 원본 픽셀 바이트를 가리키는 포인터로 구성됩니다.

이 도구가 LVGL v9도 지원하나요?

직접 지원하지는 않습니다. LVGL v9은 다른 lv_image_dsc_t 헤더 형식을 사용합니다. 이 도구는 여전히 널리 쓰이는 LVGL v8의 lv_img_dsc_t 구조체를 생성하며, v9 사용자는 픽셀 데이터는 재사용하되 헤더 필드는 직접 조정해야 합니다.

LVGL 이미지 색상이 이상하거나 뒤바뀌어 보이는 이유는?

대부분 바이트 순서 불일치가 원인입니다. lv_conf.h 설정과 디스플레이 드라이버에 맞춰 16비트 바이트 스왑(LV_COLOR_16_SWAP) 옵션을 켜거나 꺼보세요.

True Color와 True Color Alpha의 차이는 무엇인가요?

True Color는 불투명한 RGB565 픽셀만 저장하며 투명 영역은 배경색으로 합성됩니다. True Color Alpha는 픽셀마다 알파 바이트를 추가로 저장해 다른 콘텐츠 위에 그려도 투명도가 유지되며, 아이콘에 자주 사용됩니다.

생성된 배열을 LVGL 프로젝트에서 어떻게 사용하나요?

생성된 코드를 .c 파일에 붙여넣고, 헤더 파일에 LV_IMG_DECLARE(이름)를 추가한 뒤 이미지 위젯에서 lv_img_set_src()로 디스크립터 포인터를 지정하세요.

관련 도구