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
[47282] Raw to Bmp 에 대해서 질문
진수.네모 [miman101] 1491 읽음    2006-12-01 23:09
아래 코드를 visual studio 에서는 동작하는데.

이상하게 builder에 서 수행하면 출력된 bmp 의  헤더에 이상이 있다고 나옵니다.

ms 와 다른가요?

감사합니다.



#include <WINDOWS.H>
#include <stdio.h>
#include <stdlib.h>

#define BMP_FILE_NAME  0x4d42  //BM
#define HEIGHT 256             //이미지의 세로 길이
#define WIDTH 256              //이미지의 가로 길이
#define COLOR 256              //COLOR 수

BYTE Bmp_buffer[HEIGHT][WIDTH];//RAW FILE을 읽에 들이기 위한 저장 공간

//---------------------------------------------------------------------------------
//RAW FILE을 읽는 함수
void Raw_File_Read()
{
    FILE *in;
    char fname[50];
    printf("Read File Name or Path=");
    gets(fname);

    if((in=fopen(fname,"rb"))==NULL) EOF;

    int i,j;

    for(i=HEIGHT-1;i>=0;i--)
    {
        for(j=0;j<WIDTH;j++)
            Bmp_buffer[i][j]=fgetc(in);
    }

    fclose(in);
}

//---------------------------------------------------------------------------------
//BMP FILE을 기록하는 함수
void Raw_to_Bmp(BITMAPFILEHEADER Bmfh,BITMAPINFOHEADER Bmih,RGBQUAD Bmp_pal[COLOR])
{
    FILE *out;
    char fname[50];
    printf("Write File Name or Path=");
    gets(fname);

    if((out=fopen(fname,"wb"))==NULL)    EOF;

    fwrite(&Bmfh,sizeof(BITMAPFILEHEADER),1,out);   
    fwrite(&Bmih,sizeof(BITMAPINFOHEADER),1,out);
    fwrite(Bmp_pal,sizeof(RGBQUAD),COLOR,out);
    fwrite(Bmp_buffer,sizeof(BYTE),HEIGHT*WIDTH,out);
   
    fclose(out);
}

//---------------------------------------------------------------------------------
//MAIN 함수
void main(void)
{
    int i;
   
    BITMAPFILEHEADER bmfh;
    BITMAPINFOHEADER bmih;
    RGBQUAD bmp_pal[COLOR];
   
    //BITMAPFILEHEADER 설정
    bmih.biSize=sizeof(BITMAPINFOHEADER);
    bmih.biWidth=WIDTH;
    bmih.biHeight=HEIGHT;
    bmih.biPlanes=1;
    bmih.biBitCount=8;
    bmih.biCompression=BI_RGB;
    bmih.biSizeImage=WIDTH*HEIGHT;
    bmih.biXPelsPerMeter=0;
    bmih.biYPelsPerMeter=0;
    bmih.biClrUsed=COLOR;
    bmih.biClrImportant=0;
   
    //BITMAPINFOHEADER 설정
    bmfh.bfType=BMP_FILE_NAME;
    bmfh.bfSize=sizeof(BITMAPFILEHEADER)+((COLOR)*sizeof(RGBQUAD))+sizeof(BITMAPINFOHEADER)
                +bmih.biSizeImage;
    bmfh.bfReserved1=0;
    bmfh.bfReserved2=0;
    bmfh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)
        +(COLOR*sizeof(RGBQUAD));

    //PALETTE 설정
    for(i=0;i<COLOR;i++)           //8bit-> 256 monochrome 설정
    {
        bmp_pal[i].rgbRed=i;
        bmp_pal[i].rgbGreen=i;
        bmp_pal[i].rgbBlue=i;
        bmp_pal[i].rgbReserved=0;
    }
       
    Raw_File_Read();

    Raw_to_Bmp(bmfh,bmih,bmp_pal);
}

+ -

관련 글 리스트
47282 Raw to Bmp 에 대해서 질문 진수.네모 1491 2006/12/01
47286     Re:Raw to Bmp 에 대해서 질문 외랑 2299 2006/12/02
47296         Re:Re:Raw to Bmp 에 대해서 질문 진수.네모 1526 2006/12/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.