mfc编程如何设置用图片控件动态显示jpg图像。

mfc编程如何设置用图片控件动态显示jpg图像。,第1张

jpg显示的步骤:

1。打开图片控件的绘图DC。

2。使用OleLoadPicture函数读取jpg图像到内存中。(导入olepro32.dll)

3。向DC上绘制图像

示例如下:

CDC *pDC = GetDlgItem(IDC_STATIC_IMG)->GetDC() //获取控件DC

HDC hDC = (HDC)pDC

HANDLE hFile=CreateFile(szImagePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)//从指定的路径szImagePath中读取文件句柄

DWORD dwFileSize=GetFileSize(hFile, NULL) //获得图片文件的大小,用来分配全局内存

HGLOBAL hImageMemory=GlobalAlloc(GMEM_MOVEABLE, dwFileSize) //给图片分配全局内存

void *pImageMemory=GlobalLock(hImageMemory) //锁定内存

DWORD dwReadedSize //保存实际读取的文件大小

ReadFile(hFile, pImageMemory, dwFileSize, &dwReadedSize, NULL) //读取图片到全局内存当中

GlobalUnlock(hImageMemory) //解锁内存

CloseHandle(hFile) //关闭文件句柄

IStream *pIStream//创建一个IStream接口指针,用来保存图片流

IPicture *pIPicture//创建一个IPicture接口指针,表示图片对象

CreateStreamOnHGlobal(hImageMemory, false, &pIStream) //用全局内存初使化IStream接口指针

OleLoadPicture(pIStream, 0, false, IID_IPicture, (LPVOID*)&(pIPicture))//用OleLoadPicture获得IPicture接口指针

//得到IPicture COM接口对象后,你就可以进行获得图片信息、显示图片等 *** 作

OLE_XSIZE_HIMETRIC hmWidth

OLE_YSIZE_HIMETRIC hmHeight

pIPicture->get_Width(&hmWidth) //用接口方法获得图片的宽和高

pIPicture->get_Height(&hmHeight)

pIPicture->Render(hDC,0,0,100,100,0,hmHeight,hmWidth,-hmHeight,NULL) //在指定的DC上绘出图片

GlobalFree(hImageMemory) //释放全局内存

pIStream->Release() //释放pIStream

pIPicture->Release() //释放pIPicture

ReleaseDC(pDC)

可以通过以下几种方式将图片控制在1600px以内:

使用图片编辑软件,如Photoshop、美图秀秀或GIMP等,将图片大小调整为1600px或以下。

在HTML或CSS中使用max-width属性,将图片的最大宽度设置为1600px。例如:

<img src="example.jpg" style="max-width:1600px">,example.jpg这里替换成你的图片地址


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/7687022.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存