|
캡쳐보드에서 YUY2 이미지를 받아서 bmp 포멧으로 바꿔 쓰려 합니다.
비트맵 파일로 바꾸면 화면이 깨지네요.
소스는 다음과 같습니다.
무엇이 문제인지 알려주십시요;;
//////////////////////////////////////////////////////////////////////////////////////////////////
// 콜백 함수 내용 입니다.
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih;
ZeroMemory(&bmfh, sizeof(bmfh));
ZeroMemory(&bmih, sizeof(bmih));
bmfh.bfType = 0x4d42; // 'BM'
bmfh.bfSize = (sizeof(BITMAPFILEHEADER) - 2) + sizeof(BITMAPINFOHEADER) +
(sizeX * sizeY * 2); //360x240
bmfh.bfReserved1 = 0;
bmfh.bfReserved2 = 0;
bmfh.bfOffBits = (sizeof(BITMAPFILEHEADER) - 2) + sizeof(BITMAPINFOHEADER) ;
bmih.biSize=sizeof(BITMAPINFOHEADER);
bmih.biWidth=sizeX;
bmih.biHeight=sizeY;
bmih.biPlanes=1;
bmih.biBitCount=16;
bmih.biCompression=0;
bmih.biSizeImage=sizeX*sizeY*2;
bmih.biXPelsPerMeter=0;
bmih.biYPelsPerMeter=0;
bmih.biClrUsed=0;
bmih.biClrImportant=0;
TMemoryStream *pMemoryStream = new TMemoryStream();
pMemoryStream->WriteBuffer(&bmfh, sizeof(BITMAPFILEHEADER) - 2);
pMemoryStream->WriteBuffer(&bmih, sizeof(bmih));
//pImage 이미지 소스
pMemoryStream->WriteBuffer((BYTE*) pImage, bmih.biSizeImage);
pMemoryStream->Position = 0;
Image1->Picture->Bitmap->LoadFromStream(pMemoryStream);
delete pMemoryStream;
|