VC++下载图片然后控件显示JPG图片的实现
本人采用VS2003开发平台,由于可以兼容VC6.0的大量代码。但是要实现目前C#的大量功能,还是要费不少功夫的。下面讲下如何如下图片下载,然后显示在图片控件的功能。单独封装了两个函数可以只直接使用。
下载远程图片函数如下:
CString dir_name="";dir_name=ReturnPath();HRESULT hre = URLDownloadToFile(0, _T("http://172.28.125.74/auction/uploads/images/2014-03/1395916979-126367078.jpg"), _T(dir_name + "/1.jpg"), 0, NULL);if(SUCCEEDED(hre)){Sleep(1000);CDC *pDC = m_edit.GetDC(); ShowJpgGif(pDC, _T(dir_name + "/1.jpg"), 0, 0,(1024 / 2)-20, (768 / 2)-60); }
本地路径获取代码:
CString CAuctionShadowDlg::ReturnPath(){CString sPath;GetModuleFileName(NULL, sPath.GetBufferSetLength(MAX_PATH + 1), MAX_PATH);sPath.ReleaseBuffer();int nPos;nPos = sPath.ReverseFind('\\');sPath = sPath.Left(nPos);return sPath;}
图片显示到控件代码:
/**
CDC *pDC, 传入控件
CString strPath, 图片本地路径
int x, 控件摆放图片的起点坐标位置
int y,
int widthX,控件摆放图片的宽和高
int heigthY*/bool CAuctionShadowDlg::ShowJpgGif(CDC *pDC, CString strPath, int x, int y,int widthX,int heigthY)
{ IStream *pStm; CFileStatus fstatus; CFile file; LONG cb; if (file.Open(strPath,CFile::modeRead)&&file.GetStatus(strPath,fstatus)&&((cb = fstatus.m_size) != -1)) { HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb); LPVOID pvData = NULL; if (hGlobal != NULL) { pvData = GlobalLock(hGlobal); if (pvData != NULL) { file.Read(pvData, cb); GlobalUnlock(hGlobal); CreateStreamOnHGlobal(hGlobal, TRUE, &pStm); } } } else return false; //显示JPEG和GIF格式的图片,GIF只能显示一帧,还不能显示动画, //要显示动画GIF请使用ACTIVE控//件。 IPicture *pPic; //load image from file stream if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic))) { OLE_XSIZE_HIMETRIC hmWidth; OLE_YSIZE_HIMETRIC hmHeight; pPic->get_Width(&hmWidth); pPic->get_Height(&hmHeight); double fX,fY; //get image height and width fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0); fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0); //use render function display image if(widthX>0&&fX>widthX){if(FAILED(pPic->Render(*pDC,x,y,widthX,heigthY,0,hmHeight,hmWidth,-hmHeight,NULL))) { pPic->Release(); return false; } }else{if(FAILED(pPic->Render(*pDC,x,y,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL))) { pPic->Release(); return false; } }pPic->Release(); } else return false; return true;
}
VC++下载图片然后控件显示JPG图片的实现相关推荐
- 演练GridView控件显示目录图片
本博文,将带你学习使用GridView控件显示站点目录的图片.如果你已经学会怎样做图片缩略图:怎样应用接口来实现统一的属性,方法或函数:怎样动态加载用户控件,等等.就不必往下看了.因为此篇博文就是演练 ...
- MFC程序调用Windwos CMD命令打印图片 MFC 控件显示层次调整,即(叠放次序)和绘制遮挡置于底层顶层灰色
MFC打印 打电话 ShellExecute 从您的计划中 print 操作 (特好用) ShellExecute(NULL,"print","c:\\test.png& ...
- c# picturebox控件显示本地图片和显示网上的图片
显示本地图片 pictureBox1.Image=Image.FormFile(@"图片路径"); 显示网络图片 pictureBox1.ImageLocation = @&quo ...
- vc实现html显示,在VC对话框中用ChtmlView控件显示HTML(2)
CHtmlCtrl类的头文件: #include "afxhtml.h" class CHtmlCtrl : public CHtmlView { public: CHtmlCtr ...
- 如何让web控件FileUpload选择完文件之后就自动触发事件,让Image控件显示出图片来...
function SelectImg(url){ document.all.item("ProductImg").src=document.getE ...
- mfc picture控件显示png图片
onpaint函数里添加程序: CClientDC *pDC = new CClientDC(GetDlgItem(IDC_LIGHT)); CRect rect; GetDlgItem(IDC_LI ...
- 第一站小红书图片裁剪控件之二,自定义CoordinatorLayout联动效果
本篇续: 第一站小红书图片裁剪控件,深度解析大厂炫酷控件 先来看看几张效果图: emmmm,想感受高清丝滑的动画效果,有以下两种方式: https://github.com/HpWens/MeiWid ...
- 像小红书一样的图片裁剪控件联动效果
今日科技快讯 据CNBC报道,美国法官已经要求特斯拉首席执行官埃隆·马斯克(Elon Musk)在未来两周内设法与美国证券交易委员会(SEC)达成和解协议.否则,法院将决定是否判马斯克犯有藐视法庭罪. ...
- MFC 对话框中的picture control 控件显示图片
MFC读取图片一般使用自定义的DIB文件.DIB文件集中了处理图片的API函数,这样可以方便我们的图像操作. DIB文件下载路径:DIB文件下载 MFC显示图片有几种方法: 1.在运行界面上选择 文件 ...
最新文章
- ASP.NET的Cookie跨域问题
- 输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
- 笔记-项目质量管理-精简
- 【Python基础】Python 10 个习惯用法,看看你都知道不?
- 图像处理作业 第8次
- Arrays类中的binarysearch
- 不同数据库模式下DATE类型的行为解析
- ajax返回功能,jquery – 记得ajax在点击返回按钮时添加的数据
- ueditor1.4.3 jsp版在ssh下的配置
- 时钟模块ds1302的使用
- Servlet原理解析
- PPT的配色方法(师从于珞珈老师)
- python日期计算,Python 日期的转换及计算的具体使用详解
- unrecognized selector sent to instance 0x7fbb51c7c490问题解决方法之一
- android 打包报错 Execution failed for task ‘:app:lintVitalRelease‘.
- 虚拟机由于找不到msvcr120dll_计算机提示丢失msvcr120.dll文件怎么办?
- 【释义详解】Software License (软件许可证)是什么?
- 130个物联网示范项目上榜!工信部权威发布
- 【转】欧式空间与酉空间——概念区分
- linux搭建天地伟业easy7,easy7视频监控系统客户端|天地伟业easy7监控客户端简洁版(Easy7 Smart Client Express)下载 V7.12 官方版 - 比克尔下载...
热门文章
- 金蝶物料辅助属性改造
- 两平面平行但不重合的条件是_____黑龙江省大庆外国语学校高中数学_第二章《2.2_直线、平面平行的判定及其性质》单元测试5_新人教A版必修3...
- 不同范数下的余弦定理_什么是绝对矩阵范数?
- LeetCode 805数组切割题目
- scrcpy-将Android手机屏幕实时投射到电脑
- 如何使用logcat和getevent查看遥控器的ir key,linux key和android key值
- 4.9 黑名单数据库的界面展示
- C源码:通过IP地址查找主机名 findip.c
- Python综合基础及机器学习面试题
- 用户、配额管理 、 云主机类型管理 、 镜像管理 、 网络管理 、 安全和实例管理 、 计算节点扩容案例