728 250 상단


비트맵 코드 변환기 (BMP -> HEX 코드) 코딩 삽질

코딩 중에 유용하게 사용할 수 있는 비트맵 컨버터입니다. 첨부된 그림의 내용처럼 비트맵을 hex 코드로 변환시켜 줍니다. PCB를 이용해서 뭔가를 만들 땐 꽤 유용합니다.



Converter Manual

24 bits BMP to 8 Bits 비트맵 그림 파일 변환툴(BGR332)

LCD 화면상에 원하는 image를 표현하려면 image 에 대한 각 pixel의 color data가 필요합니다.

일반적인 사진은 Jpeg 형태로 압축되어 있습니다.


LCD에 그림을 그려 주려면 각 pixel을 빛의 삼원색인 Red / Green / Blue로 분리해야 하는데(Jpeg to Bitmap 변환) Jpeg 엔진을 돌리려면 높은 CPU computing power와 많은 RAM이 필요하므로 외부 RAM을 충분히 가진 ARM7 이상의 시스템이 필요합니다.


따라서 사진 등을 LCD에 표현하려면 보통은 다음의 두 가지 방법 중 한 가지를 사용합니다.


방법 1.

- JPEG file을 24bits BMP로 변환하여 SD 카드 등 외부 메모리에 저장시킨후 SD 카드에서 pixel 별 RGB data를 읽어 LCD에 뿌려준다.


- 320x240 24bits BMP 한 화면의 data량이 8 bits X 3(RGB) X 320 X 240 = 225K Bytes이기 때문에 Atmega128등 작은 MCU의 flash ROM 등에는 직접 program 할 수 없습니다.


방법 2.

- 24bits BMP를 8bits BMP(Blue:3bits, Grreen:3bits, Red:2bits)로 data 양을 줄여서 Atmega128등 작은 MCU의 flash ROM에 embed 하여 LCD에 뿌려주는 방법.


- 8bits X 320 X 240 size만 해도 75 Kbytes 이기 때문에 320 X 240 pixel. 한 화면만 해도 flash에 저장할 수 없습니다. (Atmega128의 경우 한번에 64Kbytes 이상의 data 처리 불가) 따라서 하나의 화면을 1/2로 나누어 화면 절반씩 data를 만들어서 화면에 뿌려줄 수 있습니다.


참고 하실 수 있도록 자료실에 BGR 332 data를 만들 수 있는 tool을 올려놓았습니다. 자세한 BMP file data format에 대해서는 Google, Wikipedia 등을 참조하시기 바랍니다.



이 변환툴은 24 Bits BMP 그림 파일을 8 Bits per Pixel data로 바꿔주는 기능만을 지원합니다.


예)

24 Bits BMP = 8bits + Green 8bits + Blue 8bits.

LCD 16 Bits color (65K color) = Blue(5 bits) + Green(6bits) + Red(5bits)

8Bits color = (3 bits) + Green(3bots) + Red(2bits)


예를 들어 아래와 같이 (가로)6 x (세로)1 픽셀짜리 24 bits BMP 그림 파일이 있다면,


24 bits BMP 그림 파일


실제 BMP file을 hex editor로 열어보면 다음과 같은 data로 이루어져 있습니다.


24 bit BMP - hex editor로 열기


즉, 아래와 같이 0x000036 번지부터 24bits B(8bits)-G(8bits)-R(8bits) pixel data가 시작됩니다.


 1

 0x00

 0x00

 0x00

 Black

 2

 0x00

 0x00

 0xff

 Red

 3

 0x00

 0xff

 0x00

 Green

 4

 0xff

 0x00

 0x00

 Blue

 5

 0xff

 0xff

 0xff

 White

 6

 0x00

 0xff

 0xff

 Green + Blue = Yellow


많은 경우 embedded system에서 그림을 저장하고 LCD에 표현하기에는 24 bits / pixel이라는 데이터양이 부담스럽게 느껴집니다. 예를 들어 100 x 100 pixel 그림 한 장을 표현하기 위해서는 100 x 100 x 3(BGR 3Bytes) = 30,000 Bytes가 필요하므로 그림 data의 양을 줄이기 위해 8 bits / pixel 표현 방법을 자주 사용하게 됩니다.


그중에서도 자주 사용되는 format이 BGR 332 format입니다.


즉 B-G-R 888(24bits) format에서 Blue/Green/Red 각 8bits data중 각각 상위 3bits / 3bits / 2bits만 추출하여 8 bits/ pixel BGR332 data를 만들어 사용합니다. 가로 6  x 세로 1 pixel 짜리 같은 24 bits 그림파일을 BGR332로 변환하면 다음과 같이 1/3 크기의 data가 만들어집니다.



사용방법


eZ-Bitmap Converter rev1 - 사용 방법

eZ-Bitmap Converter rev1 - BMP 파일 열기

eZ-Bitmap Converter rev1 - 우리집 강아지 예제

eZ-Bitmap Converter rev1 - 8 bit Color 332

eZ-Bitmap Converter rev1 - 예제 1

eZ-Bitmap Converter rev2





덧글

댓글 입력 영역


250 250 스애드

반응형 사이드