none
비트맵 헤더의 적절한 처리. RRS feed

  • 질문

  • 안녕하세요. 윈도우즈에서 제공하는 구조체 BITMAPFILEHEADER, BITMAPINFOHEADER에 값을 넣을때 어떻게 처리를 해야될 지 몰라서 이렇게 질문 드립니다.

    게임 프로그래밍이나 영상쪽 분야에서 일을 하시는 분들이라면 비트맵 구조에 대해서 한번 쯤은 공부해보셨으리라 생각이 됩니다. 여러분들께서도 아시다시피 비트맵 헤더의 54바이트 중 integer값에 해당하는 모든 멤버 변수들은 little-endian 형식으로 저장되어 있습니다. 따라서 비트맵 헤더를 버퍼로 로드한 뒤, 앞서 언급한 구조체들에 삽입할 때에는 endian에 대한 고려를 해야되지 않나 생각을 해 보았습니다. 윈도우즈도 CreateDIBitmap 등과 같은 메서드를 통해 비트맵 핸들을 생성할때 저 구조체들의 값을 참조하기 때문입니다. 그런데 구조체 MSDN 정의부에서는 endian에 대한 어떠한 언급이나 가이드 라인도 없더라구요.

    MSDN에서도 아무런 가이드 라인이 없었는데 이거 어떻게 해야 되는 것 입니까..?

    2013년 2월 5일 화요일 오전 6:45

답변

  • 비트맵은 주로 MS Windows 플랫폼이나 IBM OS/2 에서 사용하기 위해서 만들어졌기 때문에

    Big-Endian과의 호환성을 고려하지 않은듯합니다. 따라서 특별한 명시가 없습니다.

    만약, Big-Endian 을 사용하는 시스템이라면 바이트 정렬을 고려해서 작업하시면 되고

    윈도우즈 계열이라면 바이트 정렬을 고려하지 않고 기본 정렬형식으로 사용하시면 됩니다.

     

    • 답변으로 표시됨 therealgroup 2013년 2월 5일 화요일 오후 7:11
    2013년 2월 5일 화요일 오후 4:21
    중재자