본문 바로가기
C++ 200제/코딩 IT 정보

비트맵 코드 변환기 (bmp -> hex 코드) jpg 이미지 무료 프로그램

by vicddory 2017. 1. 10.

비트맵 코드 변환기 (bmp -> hex 코드) jpg 이미지 무료 프로그램


코딩 중에 유용하게 사용할 수 있는 비트맵 컨버터입니다. 첨부된 그림의 내용처럼 비트맵을 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 to HEX free Converter]


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


24 bit BMP - hex editor로 열기[BMP 파일 32 HEX 변환 무료 프로그램]


즉, 아래와 같이 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 표현 방법을 자주 사용하게 됩니다.


참조 : MFC Bitmap 대량 삽입 문제 [링크]


그중에서도 자주 사용되는 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 - 사용 방법[BMP to HEX free Converter]

파일 - 열기를 클릭하고 비트맵 코드 변환할 bmp 이미지를 선택합니다.

eZ-Bitmap Converter rev1 - BMP 파일 열기[BMP 파일 32 HEX 변환 무료 프로그램]


파일이 열리면 코드창과 메뉴 사이에 그림이 보입니다.


eZ-Bitmap Converter rev1 - 우리집 강아지 예제[BMP to HEX free Converter]

이미지 무료 프로그램의 Image - Convert Info - 8bit Color332를 선택합니다.

eZ-Bitmap Converter rev1 - 8 bit Color 332[BMP 파일 32 HEX 변환 무료 프로그램]

해당 옵션에 맞는 비트맵 코드 변환 결과가 확인됩니다.

eZ-Bitmap Converter rev1 - 예제 1[BMP to HEX free Converter]

코딩할 때는 변환된 헥사 코드를 그대로 사용하면 됩니다.

eZ-Bitmap Converter rev2[BMP 파일 32 HEX 변환 무료 프로그램]


개발자 분들에게는 이미지를 헥사 코드로 변경해 주는 이 프로그램 유용하리라 생각됩니다.


비트맵 코드 변환기 (bmp -> hex 코드) jpg 이미지 무료 프로그램

댓글