怎样在VC++中加载显示PNG图片,处理这样的图片需要要什么类?谢谢!

有代码实现就更好了

介绍一种最简单的办法。用 CImage 类的 Load 函数加载图片,之后用 Detach 取得 HBITMAP 句柄。取得图片的HBITMAP 句柄后就可以像操作 BMP 图片一样处理 JPG / JPEG / GIF / PNG 格式的图片了。具体代码如下:

#include “atlimage.h”

CImage img;

HRESULT ret = img.Load(filename ); // filename 是要加载的文件名(包含路径)

HBITMAP bitmap = img.Detach();

然后搞一个dc,BitBlt 就可以了
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-01
在VC2003或VC2005下用CImage类会很方便,但是如果是VC6.0的话,貌似只能用GDI+才可以,你可以在网上下载GDI+ for VC6.0的库文件,网上这种资料很多

怎样在VC++中加载显示PNG图片,处理这样的图片需要要什么类?谢谢!
介绍一种最简单的办法。用 CImage 类的 Load 函数加载图片,之后用 Detach 取得 HBITMAP 句柄。取得图片的HBITMAP 句柄后就可以像操作 BMP 图片一样处理 JPG \/ JPEG \/ GIF \/ PNG 格式的图片了。具体代码如下:include “atlimage.h”CImage img;HRESULT ret = img.Load(filename ); \/\/ file...

在线等 VC++关于加载读取JPG,PNG,BMP 或者DX 图像格式的问题
1.很小白的方法,直接改扩展名,自己知道是什么类型的就好 2.用二进制将图片写进文件,使用的时候再从文件中抽取出来,可以定义一个类似于这样的结构体 struct PICTURE_INFO { TCHAR name[50]; \/\/文件名 UINT size; \/\/文件大小 TCHAR *pData; \/\/保存数据的指针 } 或者把图片做为二进制资...

如何用C++在屏幕上显示png图片?
要在Windows程序中显示这两种图片需要将压缩过的图片在内存中还原为位图。相对而言bmp格式的图片处理起来就容易得多,以至于查查资料每个人都可以写一个读取bmp图片的模块,当然,也不完全那么容易,还要考虑多种颜色模式和bmp图片中4像素对齐的问题。OK,不管jpeg和png读取多么麻烦,ijg和libpng.org已经写好...

急:请问VC++怎样做欢迎界面
VC里面没有直接显示PNG图片的方法的。下面是VC知识库里面的一篇文档, 写得非常详细,并附有源代码下载。Windows 中不规则窗体的编程实现 http:\/\/www.vckbase.com\/document\/viewdoc\/?id=1345 至于制作欢迎界面,VC6.0里面有现成的,按一楼fengjunkuan的方法即可实现。你在你的程序里面稍微改动一下就可...

现在VC++编程处理图像使用GDI好还是GDI+好?理由?
如果只是一些简单的显示一张图片啊,画了线段之类的,直接用GDI就行了;至于GDI+,是GDI的一个扩展库,它包含了比较多的内置库,比如说,它支持PNG加载,这个在传统的GDI里是不支持的,传统GDI只支持最简单的BMP,如果你不用一些高级功能,那用GDI就足够了;这么说差不多懂了吧 ...

这位大哥你好:我是在VC++环境下进行图片处理,处理一个齿轮,
l函数原型:int WINAPI icePub_imgToSingleBmp(char *strImgFilename,char *strBmpFilename,int thresholdValue)输入:strImgFilename 待处理图像文件名 strBmpFilename bmp图像名 thresholdValue 256级灰度值的阈值(函数会先将图像转换成灰度再根据thresholdValue做黑白2值化)输出:lVC连接Lib方式声明 __...

紧急求助:VC++如何重写子控件某一特定消息(如:WM_PAINT)
你解码Gif,Jpg,Png 等图像文件后,生成的应该是一个位图资源。既一个HBITMAP句柄,假设是hTheBmp;这个Picture控件的句柄可以通过HWND hPictureWnd = ::GetDlgItem(hDlg,nIDImage); 得到,那么就可以这样操作来实现绘图。HBITMAP hOldBmp = ::SendMessage(hPictureWnd, STM_SETIMAGE, IMAGE_BITMAP,...

MFC中怎么实现连续显示一个文件夹里的图片
1.你可以先用CFileFind搜索指定目录下的文件,把所有图像文件的路径保存在一个CStringList中,然后在按钮响应函数中调用Invalidate,引起重画,在OnDraw中写显示图片的代码。2.关于CFileFind遍历的应用,网上有很多代码。看不懂再联系我吧。3.可以得到文件的格式,再由格式判断是否是图片。无论是什么格式,...

VC++ CxImage 全透BMP Save() 后 通道变成不透的了
应该是cximage看到左上第一个像素是a=0xff,所以认为是标准bmp图,照考过来,所以出现你说的现象。解决方法是换用png、tiff、tga、pcx格式。不过cximage和实践上最好用png,ps方便用tga。可以用自定义图片格式,自己绘制a通道,这样简单使用bmp就可以了。不过bmp图片太大,加载慢,实用价值很低。

用VC++代码怎样实现图像网络传送?(注意:不是图片而是图像)
本问介绍了GDI+支持的大多数图像文件格式,以及GDI+提供的处理图像的文件的两个类:Image和Bitmap我们知道,在以往的图像处理中,常常要根据不同图像文件的格式及其数据存储结构在不同格式中进行转换。某个图像文件的显示也是依靠对文件数据结构的剖析,然后读取相关图像数据而实现的。现在,GDI+提供了Image和Bitmap类使我们...

相似回答