저장하는 프로그램에 따라서, BfSize가 조금 차이가 날 수 있다. 테스트해본봐 그림판과 포토샵에서

    동일한 방식으로 저장한 이미지가 2바이트 차이나는 것을 알수 있다.

    하지만, 출력하는 부분에서는 문제가 되지 않았다. 혹시 저장을 잘못한 것일까???

    몇번 해봐도 똑같다. 그냥 맨 마지막 2바이트는 무시하지뭐...

    아래의 그림들은 비트맵 헤더 파일의 정보를 출력한 것이다. 프로그래밍시 참고하기 바란다.

    어쨋거나, 각필드의 의미만 알면, PPM 이미지를 BMP로 바꾸는 것은 간단하다.




                         < 비트맵 파일 헤더 - BITMAP FILE HEADER >

    위의 헤더는 아래의 두 BITMAPINFOHEADER 중에서 PhotoShop으로 저장한 BMP의
    BITMAP FILE 헤더이다.





                       < 비트맵 정보 헤더 - BITMAP INFO HEADER from Adobe PhotoShop >





                      < 비트맵 정보 해더 - BITMAP INFO HEADER from MS-PAINT>
    BMP 파일 포맷이다. 2번째 3번째 그림은 PhotoShop과 MsPaint에서 저장한 BITMAP파일이다.

    다소 차이가 있어서 동시에 게제 하였다. 2번째가 PhotoShop에서 만든 BMP, 3번째가 MS Paint에서 만든 BMP이다.

    BITMAPFILEHEADER는 다음과 같이 구성된다.
    bfType : 비트맵 타입을 나타냄 'BM'
    nfSize : 해당 이미지 파일의 크기
    bfReserved1 : 예약된 공간
    bfReserved2 : 예약된 공간
    bfOffBit : 실제 픽셀 정보공간 까지의 거리


    BITMAPINFOHEADER
    biSize : 이 구조체를 저장하기 위한 바이트수 (Default : 40Byte, 확장형 DIB 사용시 변동)
    biWidth : 비트맵의 가로 크기 (픽셀단위)
    biHeight : 비트맵의 세로 크기 (픽셀단위)
    biPlane : 디스플레이시 피룡한 플레인 수 (Always : 1)
    biBitCount : 한 픽셀을 표현하기 위한 비트수
    biCompression :압축유형 (Default : BI_RGB - 비압축)
    biSizeImage : 필셀데이터를 저장하기 위한 공간
    biXPelsPerMeter : 가로 해상도
    biYPelsPerMeter : 세로 해상도
    biCirUsed : 실제 사용되는 생상 수 (Default 0 : biBitCount에서 지정한 모든색상 사용)
    biClrImportant : 화면에 표현하기 위한 색상의 인덱스 (Default 0 : 모든색상)

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기