用API OleLoadPicture来加载JPG ——IPicture::Render参数
发布时间:2018年2月11日 作者:未知 查看次数:400
自:http://blog.csdn.net/xuehuabaobeier/article/details/51151400 在C++中读取图片到屏幕上,首先需要加入这两个头文件 #include <ocidl.h> 关于render在MSDN中是这样写的 HRESULT Render( hdc 是设备环境句柄, x、y是图片在设备中显示的坐标, cx、cy是要显示图片的矩形的长度和宽度,注意,用IPicture::get_Width和IPicture::get_Height的得到的数据并不适用于此处,而是要除以2540 xSrc,ySrc分别是在源图像上的水平偏移和在源图像上的垂直偏移; cxSrc是在源图像上水平拷贝的数量,cySrc是在源图像上垂直拷贝的数量; prcWBounds是指向目标图元设备环境句柄的指针,一般为NULL。 为什么用render函数的时候都是Render(hdc, xPos, yPos, width, height, 0, srcHeight,srcWidth,-srcHeight); 原因是这样的:这个和位图的格式有关,位图文件中最开始的像素数据不是图像左上角这个像素,而是图像中最后一行最左边像素点的数据。所以左顶点是(0,hmHeight) -------------------------- Render 这个函数,nHeight、nWidth一定要对,否则可能导致像素丢失 ,显示的图片与原图不一样,而且,获取图片宽高,nHeight、nWidth的单位为MM_HIMETRIC 模式(单位是0.01毫米),用HIMETRICtoDP可以讲MM_HIMETRIC转成MM_TEXT像素单位。 |
|
|