buf=(LPVOID) new BYTE[nSize];
   Get_Pic(nSzie,buf) ;  //请帮忙写一个显示 图片,保存图片的 函数
   把获取的图象数据存入 地址为 buf中,
如何显示在界面上 并保存到硬盘上, 
     事情紧急,请高手 该出手时就出手,先谢谢了。

解决方案 »

  1.   

    得到图像数据了,你看这段:
    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位的呀。