buf=(LPVOID) new BYTE[nSize];
Get_Pic(nSzie,buf) ; //请帮忙写一个显示 图片,保存图片的 函数
把获取的图象数据存入 地址为 buf中,
如何显示在界面上 并保存到硬盘上,
事情紧急,请高手 该出手时就出手,先谢谢了。
Get_Pic(nSzie,buf) ; //请帮忙写一个显示 图片,保存图片的 函数
把获取的图象数据存入 地址为 buf中,
如何显示在界面上 并保存到硬盘上,
事情紧急,请高手 该出手时就出手,先谢谢了。
void * lpSourceBits;
HDC hDC = NULL, hSourceDC;
HBITMAP hSourceBitmap, hOldSourceBitmap;
DWORD dwSourceBitsSize;
LPBITMAPINFO lpSrcDIB = (LPBITMAPINFO)lpDIB;
if (! lpSrcDIB)
return ;
// Gonna use DIBSections and BitBlt() to do the conversion, so make 'em
hDC = ::GetDC(NULL);
hSourceBitmap = CreateDIBSection( hDC, lpSrcDIB, 0, &lpSourceBits, NULL, 0 );
hSourceDC = CreateCompatibleDC( hDC );
dwSourceBitsSize = lpSrcDIB->bmiHeader.biHeight *WIDTHBYTES(((LPBITMAPINFOHEADER)lpDIB)->biWidth * ((LPBITMAPINFOHEADER)lpDIB)->biPlanes * ((LPBITMAPINFOHEADER)lpDIB)->biBitCount);
memcpy( lpSourceBits, ::FindDIBBits(lpDIB), dwSourceBitsSize ); ::FindDIBBits(lpDIB),就是指向图像数据的指针,后面是其长度。
然后把它保存为图像文件就行了。
其实直接按图像格式把它写到文件中不就得了。最好是24位的呀。