MFC载入JPG图片
##
1.定义画图函数
HRESULT CIPCamDlg::draw(char *lpImageFile, HWND hWnd, int nScrWidth, int nScrHeight)
{
HDC hDC_Temp=::GetDC(hWnd); IPicture *pPic;
IStream *pStm; BOOL bResult; HANDLE hFile=NULL;
DWORD dwFileSize,dwByteRead; hFile=CreateFile(lpImageFile,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);//打开硬盘中的图形文件 if (hFile!=INVALID_HANDLE_VALUE)
{
dwFileSize=GetFileSize(hFile,NULL);//获取文件字节数 if (dwFileSize==0xFFFFFFFF)
return E_FAIL;
}
else
{
return E_FAIL;
} HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);//分配全局存储空间
LPVOID pvData = NULL; if (hGlobal == NULL)
{
AfxMessageBox("图形文件分配出错.");
return E_FAIL;
} if ((pvData = GlobalLock(hGlobal)) == NULL)//锁定分配内存块
{
AfxMessageBox("内存块锁定出问题");
return E_FAIL;
} ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);//把文件读入内存缓冲区 GlobalUnlock(hGlobal); if(CreateStreamOnHGlobal(hGlobal, TRUE, &pStm) != S_OK)
{
AfxMessageBox("流初始化失败");
return E_FAIL;
} bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);//装入图形文件
if(FAILED(bResult))
{
AfxMessageBox("图形文件装载出错.");
return E_FAIL;
} OLE_XSIZE_HIMETRIC hmWidth;//图片的真实宽度
OLE_YSIZE_HIMETRIC hmHeight;//图片的真实高度
pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight); //char str[20]={'\0'}; bResult=pPic->Render(hDC_Temp,,,nScrWidth,nScrHeight,,hmHeight,hmWidth,-hmHeight,NULL);//将图形输出到屏幕上 CloseHandle(hFile);//关闭打开的文件 pPic->Release(); GlobalFree(hGlobal);// Free memory.
if (SUCCEEDED(bResult))
{
return S_OK;
}
else
{
AfxMessageBox("图形文件装载出错.");
return E_FAIL;
}
}
2.调用
HWND m_hWnd;
GetDlgItem(IDC_STATIC_VIEW,&m_hWnd); //IDC_STATIC_VIEW是picture控件(不用做任何修改)
draw("D://a.jpg",m_hWnd,宽度,高度);
MFC载入JPG图片的更多相关文章
- MFC载入BMP图片
两步 hBitmap = (HBITMAP)LoadImage(NULL,fullPathName,IMAGE_BITMAP,120,120,LR_LOADFROMFILE);//载入图片 m_pic ...
- Unity3d载入外部图片文件
unity里的图片在生成时会压缩成资源文件,有时客户想自己放一些图片用unity显示,就必须载入外部图片. 大体思路:用Application.streamingAssetsPath或Applicat ...
- MFC显示Mat图片
Opencv在1.0时代,在MFC框架上显示图片可以通过Cvvimage类里的DrawPicToHDC( IplImage *img, UINT ID)方法方便的显示出来,当然当时使用的还是IpIIm ...
- UWP应用载入SVG图片的兼容性方案
原文 UWP应用载入SVG图片的兼容性方案 新版本<纸书科学计算器>的更新点之一,就是优化了表达式的显示方式.在旧版本中,表达式里的符号是用png图片显示的,当用户放大看的时候会发现一些锯 ...
- MFC 窗体背景图片设置
很多人在做MFC 界面的时候想要给对话框加入背景图片,很多人都会想到在OnPaint()里面来加一段代码来实现,其实这样做并不怎么科学,因为它会导致窗口不断重绘,在很多项目中窗口会闪烁(比如带播放视频 ...
- MFC&Halcon之图片显示
上一篇介绍了MFC调用Halcon功能的简单例子,在这个例子中,点击按钮会弹出一个窗口显示图片,但是这样显示并不美观,而且...于是我决定把显示窗口做在MFC的窗体内部. 具体的方案是:使用一个Pic ...
- ios启动载入启动图片
版本判断: 1.首先你要知道这个键值对的key:id key = (id)kCFBundleVersionKey; 2.同过本地的NSBundle取得当前的版本号. 3.在沙盒中取得对应的版本号. ...
- MFC添加背景图片
1.在资源里导入一个bmp图片假设名称为IDB_BITMAP1 实现OnPaint方法 CPaintDC dc(this); CRect rect; GetClientRect(&rect); ...
- mfc显示静态图片最简单的方法
一致都是研究如何调用opencv显示动态图片,但是很多时候在显示图标的时候,都是需要显示静态图片,现在将最简单的方法总结下: 1.添加picture控件 2.添加资源,要求为bmp 3.修改属性 结果 ...
随机推荐
- 运行./build.sh出现错误:bash: ./build.sh: Permission denied
原因:文件为只读,或者用户没有权限. 修改方法: 运行命令: chmod 777 build.sh
- MVC和Web API的区别
最近几次面试时碰到过面试官提问这个问题.我一开始觉得这两个根本没有可比性,其中有一位面试官说,有不同啊,比如继承的基类不同,webapi继承的事APIController,等等. 今天我就总结一下,其 ...
- MyEclipse中抽取接口、父类
选中要抽取接口的类-------->Refactor-------->Extact Interface-------->填写抽取的接口名-------->选择要抽取的方法(一般 ...
- Android.InstallAntOnMacOSX
在Mac OS X上安装ant http://blog.csdn.net/crazybigfish/article/details/18215439
- 洛谷4782 【模板】2-SAT 问题
原题链接 \(2-SAT\)模板 #include<cstdio> using namespace std; const int N = 2e6 + 10; int fi[N], di[N ...
- AngularJS 高级程序设计
1.5.4 安装Web服务器 原来的: connect.static("../angularjs"); 报错.可以修改为: var connect = require('conne ...
- mysql 8小时timeout问题
MySQL> show variables like '%timeout%'; +--------------------------+-------+ | Variable_name ...
- BZOJ 1391 [CEOI] Order - 网络流 最大流
Solution 非常简单的建边!!! 但是刚开始的代码不够体现社会主义的优越性, 于是我 .... 惨痛教训啊... 终于到了今天才能够体现社会主义优越性... Code #include<c ...
- SQL Server 2008重新保存表时出错
在使用SQL Server 2008时,修改了表的字段名和类型名之后,点击保存按钮之后出现如下对话框:
- jdom解析xml
这次把代码整理了一下,打包发上来了,程序中需要用到的jar包也一起打在里面了,有兴趣的朋友可以解压后直接导入的eclipse里运行! xml是一种广为使用的可扩展标记语言,java中解析xml的方式有 ...