통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이
· LiveSeminar  · LiveConference
Visual C++ 포럼마을 입니다.
  마을등급 Visual C++   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 나성훈 주민 34036 since 2006-12-29
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
개인게시판
마을 게시판
등록된 마을 게시판이
없습니다.
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리

 질문&답변 ※ 꼭 답변채택을 해주시어 성의껏 답변해주신 회원님께 감사의 마음을 전하시길 바랍니다.
 MFC BTYE 배열 데이터를 bmp로 저장하고 싶습니다......  | VC++ 일반 2020-01-21 오후 4:11:09
마에신 번호: 977497 추천:0  / 읽음:144

안녕하세요. 

 

데이터 처리를 하는데 도저히 저장이 안되네요;;;... 

 

8비트 gray 값들은 pDib에 있구요...

 

8비트는 palette를 만들어 줘서 

 

파일헤더- 인포헤더-팔레트-rawbmp 의 구조를 가지고 있다고 이해하고 있습니다. 

 

많은 검색을 통해서 작성해봤는데 바탕화면에 저장되는 파일이 안열리더군요...

파일크기도 조금작고  [속성]-> 자세히 에 가면 사진크기, 너비 높이 비트수준 정보가 비어있습니다.. 

어디서 잘못된 걸까요    고수님들의 명쾌한 답변 기다리겠습니다. 

 

 

 

FILE *fp;

 

BITMAPFILEHEADER hf;

BITMAPINFOHEADER bf;

RGBQUAD palette[256];

for (int i = 0; i < 256; i++) {

palette[i].rgbBlue = (BYTE)i;

palette[i].rgbGreen = (BYTE)i;

palette[i].rgbRed = (BYTE)i;

palette[i].rgbReserved = (BYTE)0;

}

memset(&bf, 0x00, sizeof(BITMAPINFOHEADER)); 

bf.biBitCount = 8;

bf.biPlanes = 1;

bf.biHeight = -zoomHeight;

bf.biWidth = zoomWidth;

bf.biSizeImage = zoomHeight*zoomWidth;

bf.biClrUsed = bf.biClrImportant = 256;

bf.biSize = sizeof(BITMAPINFOHEADER);

bf.biCompression = BI_RGB;

 

//memset(&hf, 0x00, sizeof(BITMAPFILEHEADER));

hf.bfType = 0x4D42;

hf.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256;

hf.bfSize = hf.bfOffBits + bf.biSizeImage;

 

fopen_s(&fp,"C:\\Users\\MyCom\\Desktop\\res.bmp","wb");

fwrite(&hf, sizeof(BITMAPFILEHEADER), 1, fp);

fwrite(&bf, sizeof(BITMAPINFOHEADER), 1, fp);

fwrite(&palette, sizeof(RGBQUAD), 255, fp);

fseek(fp, hf.bfOffBits, SEEK_SET);

fwrite(pDib, sizeof(BYTE), bf.biSizeImage, fp);

 

fclose(fp);

 

 

이 글에 답변 등록하기
 [답변]참고해보세요. 2020-01-21 오후 4:22:01
칡흙 번호: 977498 추천:0  

 

안녕하십니까 비쥬얼스튜디오 8비트 이미지 처리에 대해서 여쭙습니다. | 마을 :: 컨텐츠 상세보기
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNO=20&no=977491&ref=977491&page=1

 

어제 보여드린. 예제 됩니다. ㅇ_ㅇ;;

https://www.codeproject.com/Articles/105595/RLE-Compression-for-Bitmaps

 

RLE8Demo.exe

- 윈도우 페인트에서. 이미지 파일을 읽어서. --> 256 비트 비트맵으로. 저장

- 예제 실행 -->  256 비트맵 읽기 -->  Save as RLE Bitmap 버튼 저장하기

 

256 비트맵 이미지'로 사용 하시면. 저장이 된다는 말입니다. ㅇ_ㅇ;;

 

 

이 글에 답변 등록하기
 [답변]답변.... 2020-01-21 오후 4:32:06
HonorGuard 번호: 977499 추천:0  

fwrite(&hf, sizeof(BITMAPFILEHEADER), 1, fp);

fwrite(&bf, sizeof(BITMAPINFOHEADER), 1, fp);

//fwrite(&palette, sizeof(RGBQUAD), 255, fp);

//fseek(fp, hf.bfOffBits, SEEK_SET);

fwrite(&palette, sizeof(RGBQUAD), 256, fp);

fwrite(pDib, sizeof(BYTE), bf.biSizeImage, fp);

 

 

255가 아니라 256 변경...

 

그리고 fseek 은 필요가 없을 것 같습니다.

이 글에 답변 등록하기
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2017-서울구로-0055호 / 대표: 홍영준, 서민호
08390, 서울시 구로구 디지털로32길 30, 1211호 / TEL. 02_6719_6200 / FAX. 02-6499-1910
Copyright ⓒ (주) 데브피아. All rights reserved.