社区
界面
帖子详情
如何用c语言 加载和显示png图片,谁能详细说下,呵呵
jingricj
2010-03-15 03:19:26
RT
...全文
598
4
打赏
收藏
如何用c语言 加载和显示png图片,谁能详细说下,呵呵
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wltg2001
2010-03-15
打赏
举报
回复
如果不想用GDI+的话,用IPicture接口也可以,代码如下:
::CoInitialize(NULL); // COM 初始化
HRESULT hr;
CFile file;
file.Open( "c:\\aa.jpg", CFile::modeRead | CFile::shareDenyNone ); // 读入文件内容
DWORD dwSize = file.GetLength();
HGLOBAL hMem = ::GlobalAlloc( GMEM_MOVEABLE, dwSize );
LPVOID lpBuf = ::GlobalLock( hMem );
file.ReadHuge( lpBuf, dwSize );
file.Close();
::GlobalUnlock( hMem );
IStream * pStream = NULL;
IPicture * pPicture = NULL;
// 由 HGLOBAL 得到 IStream,参数 TRUE 表示释放 IStream 的同时,释放内存
hr = ::CreateStreamOnHGlobal( hMem, TRUE, &pStream );
ASSERT ( SUCCEEDED(hr) );
hr = ::OleLoadPicture( pStream, dwSize, TRUE, IID_IPicture, ( LPVOID * )&pPicture );
ASSERT(hr==S_OK);
long nWidth,nHeight; // 宽高,MM_HIMETRIC 模式,单位是0.01毫米
pPicture->get_Width( &nWidth ); // 宽
pPicture->get_Height( &nHeight ); // 高
////////原大显示//////
CSize sz( nWidth, nHeight );
pDC->HIMETRICtoDP( &sz ); // 转换 MM_HIMETRIC 模式单位为 MM_TEXT 像素单位
pPicture->Render(pDC->m_hDC,0,0,sz.cx,sz.cy,
0,nHeight,nWidth,-nHeight,NULL);
////////按窗口尺寸显示////////
// CRect rect; GetClientRect(&rect);
// pPicture->Render(pDC->m_hDC,0,0,rect.Width(),rect.Height(),
// 0,nHeight,nWidth,-nHeight,NULL);
if ( pPicture ) pPicture->Release();// 释放 IPicture 指针
if ( pStream ) pStream->Release(); // 释放 IStream 指针,同时释放了 hMem
::CoUninitialize();
feilongjilei
2010-03-15
打赏
举报
回复
GDI+:
Graphics graphics(hdc);
Image image(TEXT("1.png"));
graphics.DrawImage(&image, Rect(x1, y1, x2, y2), 0, 0, image.GetWidht(), image.GetHeight(), UnixPixel);
包含声明:
#include <gdiplus.h>
using namespace Gdiplus;
再加上初始化 和结束 GDI+ 的函数
GdiplusStartup() GdiplusShutDown()
吧!
当然还可以用各种界面库中的函数了,哈哈!
wykqhyjs
2010-03-15
打赏
举报
回复
DING ,具体呢
Eleven
2010-03-15
打赏
举报
回复
GDI+加载png图片。
C语言
--视频精讲
C语言
作为被长期使用的编程语言,可以被运用到各种操作系统,游戏,开发中。本课程作为互联网上首家使用C99录制的
C语言
教程,展现了全面、专业。标准的
C语言
教程。可以帮助学员从基础开始一点点的深刻理解
C语言
。
跨平台
C语言
开源库总结
提供跨平台的
C语言
库,各类C、C++程序都可以用到其中的东西,已支持AIX、HP-UX、Solaris、FreeBSD、Linux、Mac OS X和Windows操作系统 本人辛苦了四年,颠覆多次,终成这个发布版,现在作为unix-center的开源项目,任何非册用户进入此链接都可以下载 有兴趣的先顶一下,便于后面的伙计看到此贴。 第二版主要增加了进程通讯的一些东西,包括线程,线程锁
c语言
基础知识(知识点较为完整)
计算机和
c语言
基础知识 计算机常识 什么是计算机? 顾名思义,就是能够进行数据运算的机器(台式电脑、笔记本电脑、平板电脑、智能手机) 计算机_百度百科 计算机的发明者是谁 ? 关于电子计算机的发明者是谁这一问题,有好几种答案: 1936年英国数学家图灵首先提出了一种以程序和输入数据相互作用产生输出的计算机构想,后人将这种机器命名为通用图灵计算机 1938年克兰德·楚泽发明了首台采用继电器进行工作的计算机,这台计算机命名为Z1,但是继电器是机械式的,并不是完全的电子器材 194
13 万字 C 语言从入门到精通保姆级教程2021 年版
13 万字
C语言
保姆级教程,从入门到精通。
c语言
插件化开发,【插件式开发】C#实现插件式开发的一个Demo
做winform程序,很多时候都需要用到插件式的,所以本人做了一个Demo,思路跟网上思路基本一致,现在共享出来如有需要的朋友可以下载。申明:部分代码来源于网上,当然思路也是,呵呵原理很简单:一:定义插件接口二:实现插件接口并建立不同工项目,使其在生成时生成不同的DLL三:主程序运行时根据接口名利用反射对插件目录的DLL进行
加载
,
加载
完成后便可以使用插件接口定义的方法或属性了。下面上几张图,有兴趣...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章