已经得到了图像句柄 如何显示图像

leafzhou78 2004-09-14 04:34:00
图像有可能是BMP,png,jpg多谢
...全文
256 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxindut 2004-09-16
  • 打赏
  • 举报
回复
LPBYTE lpbi = (LPBYTE)GlobalLock( m_hDib );
BITMAPFILEHEADER *BmpFileHead;
LPVOID lpvoid;
BmpFileHead=(BITMAPFILEHEADER*)lpbi;
lpvoid=(LPVOID)(lpbi+BmpFileHead->bfOffBits);
snaill 2004-09-14
  • 打赏
  • 举报
回复
已经得到了图像句柄?什么句柄位图句柄吗?
lixiaosan 2004-09-14
  • 打赏
  • 举报
回复
http://www.codeproject.com/bitmap/cximage.asp
wrcluomo 2004-09-14
  • 打赏
  • 举报
回复
这是书上的,你看看:BOOL WINAPI PaintDIB(HDC hDC,
LPRECT lpDCRect,
HDIB hDIB,
LPRECT lpDIBRect,
CPalette* pPal)
{
LPSTR lpDIBHdr; // BITMAPINFOHEADER指针
LPSTR lpDIBBits; // DIB象素指针
BOOL bSuccess=FALSE; // 成功标志
HPALETTE hPal=NULL; // DIB调色板
HPALETTE hOldPal=NULL; // 以前的调色板

// 判断DIB对象是否为空
if (hDIB == NULL)
{
// 返回
return FALSE;
}

// 锁定DIB
lpDIBHdr = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);

// 找到DIB图像象素起始位置
lpDIBBits = ::FindDIBBits(lpDIBHdr);

// 获取DIB调色板,并选中它
if (pPal != NULL)
{
hPal = (HPALETTE) pPal->m_hObject;

// 选中调色板
hOldPal = ::SelectPalette(hDC, hPal, TRUE);
}

// 设置显示模式
::SetStretchBltMode(hDC, COLORONCOLOR);

// 判断是调用StretchDIBits()还是SetDIBitsToDevice()来绘制DIB对象
if ((RECTWIDTH(lpDCRect) == RECTWIDTH(lpDIBRect)) &&
(RECTHEIGHT(lpDCRect) == RECTHEIGHT(lpDIBRect)))
{
// 原始大小,不用拉伸。
bSuccess = ::SetDIBitsToDevice(hDC, // hDC
lpDCRect->left, // DestX
lpDCRect->top, // DestY
RECTWIDTH(lpDCRect), // nDestWidth
RECTHEIGHT(lpDCRect), // nDestHeight
lpDIBRect->left, // SrcX
(int)DIBHeight(lpDIBHdr) -
lpDIBRect->top -
RECTHEIGHT(lpDIBRect), // SrcY
0, // nStartScan
(WORD)DIBHeight(lpDIBHdr), // nNumScans
lpDIBBits, // lpBits
(LPBITMAPINFO)lpDIBHdr, // lpBitsInfo
DIB_RGB_COLORS); // wUsage
}
else
{
// 非原始大小,拉伸。
bSuccess = ::StretchDIBits(hDC, // hDC
lpDCRect->left, // DestX
lpDCRect->top, // DestY
RECTWIDTH(lpDCRect), // nDestWidth
RECTHEIGHT(lpDCRect), // nDestHeight
lpDIBRect->left, // SrcX
lpDIBRect->top, // SrcY
RECTWIDTH(lpDIBRect), // wSrcWidth
RECTHEIGHT(lpDIBRect), // wSrcHeight
lpDIBBits, // lpBits
(LPBITMAPINFO)lpDIBHdr, // lpBitsInfo
DIB_RGB_COLORS, // wUsage
SRCCOPY); // dwROP
}

// 解除锁定
::GlobalUnlock((HGLOBAL) hDIB);

// 恢复以前的调色板
if (hOldPal != NULL)
{
::SelectPalette(hDC, hOldPal, TRUE);
}

// 返回
return bSuccess;
}

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧