이미지를 마이크로컨트롤러(MCU)용 바이트 배열로 변환하는 고성능 CLI 도구입니다. 아두이노, ESP32, STM32 등 임베디드 환경의 LCD/OLED 디스플레이에 이미지를 출력하기 위한 데이터 생성에 최적화되어 있습니다.
- 다양한 포맷 지원: PNG, JPEG, BMP, GIF, WebP 등 주요 이미지 포맷 지원
- 최적화된 변환 모드:
- Monochrome (1-bit): SSD1306 등 흑백 OLED용 비트맵 생성
- Color (RGB565): TFT LCD용 16비트 컬러 데이터 생성
- 터미널 프리뷰 (New):
--preview플래그를 통해 터미널에서o,x문자로 변환 결과를 즉시 확인 - C 헤더 파일 자동 생성:
PROGMEM을 포함한 즉시 사용 가능한 C 배열 구조 생성 - Go 라이브러리 지원 (New):
pkg/converter패키지를 통해 다른 Go 프로젝트에서 라이브러리로 활용 가능 - 세련된 CLI UI: ASCII 배너 및 컬러 출력을 통한 직관적인 작업 피드백
- ppm 호환: ppm 패키지 매니저를 통한 간편한 설치 지원
ppm install wkqcosoft/imgtobyteGo 1.23 이상의 환경이 필요합니다.
git clone https://github.com/wkqcosoft/imgtobyte.git
cd imgtobyte
make build이미지를 흑백 128x64 크기로 변환하고 터미널에서 결과를 미리 봅니다.
./imgtobyte convert -i logo.png -W 128 -H 64 -p -o ./output--color 또는 -c 플래그를 사용하여 16비트 컬러 모드로 변환합니다.
./imgtobyte convert -i photo.jpg -W 240 -H 240 --color -o ./output헤더 없이 순수 바이너리 데이터만 필요한 경우 사용합니다.
./imgtobyte raw -i image.png -W 128 -H 64 -o image.rawimgtobyte의 핵심 엔진(pkg/converter)을 프로젝트에서 직접 사용할 수 있습니다.
import "github.com/wkqco33/imgtobyte/pkg/converter"
// 1. 이미지 로드 및 리사이즈
img, _ := imaging.Open("logo.png")
resizedImg := converter.ResizeImage(img, 128, 64)
// 2. 변환 옵션 설정
opts := converter.Options{
Width: 128,
Height: 64,
Color: true, // RGB565 컬러 모드
Identifier: "my_logo",
}
// 3. 바이트 데이터로 변환
pixelData := converter.ImageToBytes(resizedImg, opts)
// 4. C 헤더 파일 내용 생성
headerContent := converter.GenerateHeader(pixelData, opts)| 플래그 | 설명 | 기본값 |
|---|---|---|
-i, --input |
입력 이미지 파일 경로 (필수) | - |
-W, --width |
출력 이미지 너비 (픽셀) | 128 |
-H, --height |
출력 이미지 높이 (픽셀) | 64 |
-c, --color |
RGB565 컬러 모드 활성화 | false (흑백) |
-p, --preview |
터미널 ASCII 프리뷰 출력 | false |
-o, --output |
결과물 저장 디렉토리 | ./ |
-d, --debug |
디버그 로그 활성화 | false |
- 성능 최우선: 불필요한 추상화를 제거하고 고성능 이미지 처리 라이브러리를 활용하여 대량의 이미지도 빠르게 처리합니다.
- 데이터 중심: MCU의 메모리 구조를 고려하여 직관적이고 효율적인 바이트 배열 구조를 생성합니다.
- 사용자 경험: 터미널 프리뷰와 세련된 UI를 통해 작업 과정을 직관적으로 파악할 수 있게 합니다.
- Language: Go 1.24
- CLI Framework: Cobra
- Configuration: Viper
- Image Processing: imaging
- UI/Color: fatih/color