|
// enum TPixelFormat {pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom};
// PixelFormat
Volume // unsigned char*
BITMAPINFO bmpi;
bmpi.bmiHeader.biWidth=XSize;
bmpi.bmiHeader.biHeight=YSize;
bmpi.bmiHeader.biBitCount=16;// 버퍼 data의 PixelFormat pf16bit 인경우
bmpi.bmiHeader.biPlanes=1;
bmpi.bmiHeader.biSizeImage=bmpi.bmiHeader.biWidth*bmpi.bmiHeader.biHeight*bmpi.bmiHeader.biBitCount/8;
SetDIBitsToDevice(Canvas->Handle,
0,0,bmpi.bmiHeader.biWidth,bmpi.bmiHeader.biHeight,
0,0,0,bmpi.bmiHeader.biHeight,
Volume, &bmpi, DIB_RGB_COLORS);
대충 위와 같은 형식으로 하면 될겁니다..
이 곳의 (Q/A) 에서 BITMAPINFO 검색해보면 좀 나올겁니다.
하얀향기 님이 쓰신 글 :
: 안녕하세요 ^^
: 흐미.. 여러방면으로 고민을 해봤는데요.. 왜 안 되는지 모르겠습니다.
: 그래서 다시 한번 도움을 요청합니다.
:
: 현재 아래와 같은 코드로 디스플레이 하고 있는데요
: Image->Canvas->Pixels[i][j] // 이런 식으론 수행 속도가 넘 느리거든요 ^^
:
:
: int fsize = width * height;
: unsigned char *Volume = new unsigned char[fsize];
:
: ...........
: // Volume 버퍼에 데이터 기록..
: ...........
:
: // 이미지를 뿌려보자 ㅡㅡ;
: TMemoryStream *MyStream = new TMemoryStream();
: MyStream->WriteBuffer(Volume, fsize);
: Image->Picture->Graphic->LoadToStream(MyStream);
:
: 위와 같이 이미지를 뿌려보았는데요?? 근데.. 이미지가 출력이 안되네요..
: 코드를 보면 잘 될것 같은뎅..
: 다시 한번 잡아주세요..
:
: 어떡해 하면.. 버퍼에 있는 것을 Image 에 뿌릴수 있을까요???
: 아님.. Image 컴포넌트가 아니더라도 ㅡㅡ;
:
: 그럼.. 답변 기다리겠습니다.
:
:
|