C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[69774] 비트맵 파일 구조에 대해...
김시환 [godson2] 2394 읽음    2013-07-05 11:38
화면의 영상을 캡쳐해서 bmp 파일로 저장을 하려고 합니다.
비트맵의 헤더를 만들기 위해 비트맵헤더 구조체를 이용했는데 저장된 이미지가 계속 잘못된 이미지라고 하면서 그림판 등에서 열리지 않아서 비트맵 이미지의 데이타를 HEX 로 분석을 해 보았더니 문제점이 있더군요..

첫번째 구조체의 크기에 대한 에러 입니다.

    int value ;
    BITMAPFILEHEADER bmphdr ;
    value = sizeof(bmphdr)  ;

위에 구문을 실행하면 value에 16이 저장 됩니다. 실제 BITMAPFILEHEADER 의 크기는 14바이트 입니다.

두번째 위의 구조체 크기의 문제가 실제 데이타에도 영향을 미칩니다.
저장된 이미지를 Hex로 열어보니

BM NUL NUL
42,43,00,00

처음 4바이트에서 BM 뒤에 2바이트 NULL 이 들어가 있습니다. 
데이타를 저장하는 것은 WriteFile(fh, &bmphdr, sizeof(bmphdr), &nWritten, NULL); 이렇게 했습니다.

저 2바이트는 도데체 어디서 온 것일까요??

빌더 6.0 , windows7 32bits 에서 테스트 했습니다.
궁금하네요..

+ -

관련 글 리스트
69774 비트맵 파일 구조에 대해... 김시환 2394 2013/07/05
69776     Re:비트맵 파일 구조에 대해... 2499 2013/07/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.