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
[1043] [질문] RAW 파일 display하기 어렵네요.../프포
xgen [ ] 4586 읽음    1999-02-01 15:51
raw file을 어떻게 display 해야할지 몰라 질문합니다. 정말 될듯될듯 하면서
도 안되더군요... *.RAW 파일은 본질적으로 bmp( 물론 Uncompressed) 와 같지
만 Header부분(RGBQUAD 도 물론 없구) Image Data막 쭉있습니다. 당연히 빌더
에서 BMP파일 display 하는게 너무 쉬우니까 raw 파일도 쉬울것 같거덩요...
그런데 실제로 해보려니까 안되군요...흑흑흑 죽겠어요....

좀 도와주세요.. 처음에는 그냥 raw 파일을 포토乍【?bmp를 만든후 header를
띄어서 Raw파일앞에 붙여서(다시말해 bmp만들어서) display 했었는데... 되긴
되거덩요.. 그런데 제가 하려는 건... raw file sequence를 계속 display 해서
video sequence player를 만드는 거라~~ 속도가 영 안따르네요... 당연히 파일
열고 쓰는게 너무 많으니까... 그래서 해야할건 BITMAPINFOF를 정의해 주고 읽
는 부분에 그냥 넣어주려고 했거덩요.... IMAGE가 GRAY IMAGE면 RGBQUAD가 필
요없어서(맞나?) BITMAPINFOHEADER만 써 넣어서 SetDIBitsToDevice 함수를 이
용했습니다. 그런데 실행파일은 만들어 지는데.. 메모리 문제인지 에러가 뜹니
다. access violation at address 004016d8 in module 'raw_pro.exe. Write of
address 77e56a65

raw파일은 포토乍【??지원되고 paint shop pro에서도 지원되는 포맷입니다. 생각보다 상당히 많이 쓰는 포맷이예요... 자료를 더 많이 드리고 질문드리고 싶은데... 그럴수가 없네요...

정말 몇주를 고민하고 있는데 이렇게 해보고 저렇게 해보고 해도 안되네요...
알려주시면 감사히 더 열심히 하겠습니다~~ 에구

제가 오늘해본 소스는 form 위에 버튼하나 딸랑있고 버튼 눌려졌을때 image를
읽어오는 건데요...
//-----------------------------------------------------------------------
----
#include <vcl.h>
#pragma hdrstop

#include <stdio.h>
#include "raw2dib.h"

#define Width   256
#define Height  256
//-----------------------------------------------------------------------
----
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-----------------------------------------------------------------------
----
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//-----------------------------------------------------------------------
----
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    BITMAPINFOHEADER *bitinfo;
    unsigned char   *image[256];
    FILE    *fp;
    if( fopen("hands.raw", "rb") == NULL ) return;

    bitinfo->biSize = sizeof(BITMAPINFOHEADER);
    bitinfo->biWidth = Width;
    bitinfo->biHeight = Height;
    bitinfo->biPlanes = 1;
    bitinfo->biBitCount = 8;                   //8bit
    bitinfo->biCompression = BI_RGB;           //uncompressed
    bitinfo->biSizeImage = 0;
    bitinfo->biXPelsPerMeter = 0;
    bitinfo->biYPelsPerMeter = 0;
    bitinfo->biClrUsed = 0;                    // no RGBQUAD
    bitinfo->biClrImportant = 0;

    for( int i=0; i<Height; i++) fread( image[i], Width, 1, fp );

    ::SetDIBitsToDevice( Handle, 0, 0, Width, Height, 0, 0, Width, 
Height, image, (const BITMAPINFO*)bitinfo, DIB_RGB_COLORS);

    fclose( fp );
}
//-----------------------------------------------------------------------
----


+ -

관련 글 리스트
1043 [질문] RAW 파일 display하기 어렵네요.../프포 xgen 4586 1999/02/01
1046     [답변] XGEN/ RAW 파일 display하기 어렵네요.../프포 xgen 4167 1999/02/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.