@ㅏ^ㅏ달 님이 쓰신 글 :
: pImageBuffer는 비트맵 데이터가 들어 있는 곳입니다. RAW데이터만 있습니다.
: if(pImageBuffer) {
: //TMemoryStream *pMyStream = new TMemoryStream();
: //pMyStream->WriteBuffer(pImageBuffer, sizeof(pImageBuffer));
: //Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
: //Bitmap1->LoadFromStream(pMyStream);
: ::SetDIBitsToDevice(this->Image1->Canvas->Handle, 300, 400, WIDTH, HEIGHT,
: 0, 0, 0, HEIGHT, pImageBuffer, &BmInfo, DIB_RGB_COLORS);
: }
:
: 이걸 하면 하얗게 나오네요.
: 첨엔 메모리 스트림을 이용해서 해볼려고 했는데 잘 안되서 바꿨습니다.
: 어떤 방법이라도 출력만 가능하면 됩니다. 난감합니다. 부탁합니다....ㅠㅠ
주어진 정보로는 원인을 알 수 없으나 주의할 점을 말씀드리겠습니다.
1. 비트맵의 BitCount가 8인 경우 BITMAPINFO의 bmiColors에 팔레트 정보를 제공해야 합니다.
2. 비트맵의 각 스캔라인은 32bit 경계를 유지해야 합니다.
즉, biSizeImage = ((((biWidth * biBitCount) + 31) & ~31) >> 3) * biHeight;의 관계가 성립해야 합니다.
http://support.microsoft.com/default.aspx?scid=kb;en-us;81498