MFC显示JPG格式的图片(2-2)

本文介绍如何使用OleLoadPicture函数创建图像接口对象并显示图像,包括声明和创建图像接口对象、获取图像尺寸及最终在对话框中显示图像的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3 创建图像接口对象

3.1 声明图像接口对象

IPicture表示图像接口,为对话框类创建一个访问权限为privateIPicture接口的指针:

IPicture* m_pPicture;

3.2 创建图像接口对象

之后,在对话框类的OnInitDialog()函数中,通过如下代码创建图像对象接口:

OleLoadPicture(
stream
, length
, TRUE
, IID_IPicture
, (LPVOID*)&m_pPicture
);
其中,OleLoadPicture()函数的作用是创建一个图像接口对象,并且使用流对象的内容来初始化这个图像接口对象。其中参数stream是在“2 创建流接口对象”中创建的流接口对象,该对象指向了内存中JPG图片;length表示从流对象中读取的字节数,即图片的大小;TRUE指定了KeepOriginalFormat的属性;IID_IPicture指定了创建的接口对象的IDm_pPicture是创建的图像接口对象。

3.3 获取图像接口对象的属性

要通过图像接口对象显示图像,必须要获取图像接口对象的高度和宽度。

m_pPicture->get_Width(&m_width);
m_pPicture->get_Height(&m_height);
其中,m_widthm_height都是对话框类的访问权限为private的成员函数。

OLE_XSIZE_HIMETRIC m_width;
OLE_YSIZE_HIMETRIC m_height;
其中,OLE_XSIZE_HIMETRICOLE_YSIZE_HIMETRIC分别是IPicture接口的Width属性和Height属性的类型,其对应的C++类型为long

最后,通过CFile::Close()关闭CFile对象。

file.Close();

4 显示图片

在对话框类的OnPaint()函数中实现图片的显示。通过IPicture接口的Render()函数实现。

CDC *dc = GetDC();
m_pPicture->Render(dc->m_hDC, 0, 0, (int)(m_width/26.45), (int)(m_height/26.45), 0, m_height, m_width, -m_height, NULL);
其中,通过GetDC()函数获取到了当前设备上下文的指针dcIPicture::Render()函数的作用是画指定的图像。该函数的第1个参数指定了当前设备上下文;第2-3个参数分别表示当前设备上下文中的位置的横纵坐标,该位置即为显示JPG文件的起始位置;第4-5个参数表示要显示的源图像的区域;第6-7个参数指定了源图像的位移;第8-9个参数指定了源图像的扩展宽度和高度;第10个参数NULL表示当前设备上下文不是元DC
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值