首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
vc CImage png 转bpm
2024-09-04
VC++使用CImage PNG转BMP图片透明背景处理
PNG格式的图片是支持透明通道的,BMP格式的图片是没有透明通道的,所以当PNG格式的图片转换为BMP格式时,对于PNG图片的透明背景就需要进行特别的处理. VC++中的HBITMAP是支持透明色的,如果HBITMAP是PNG格式图片的句柄,使用CImage:Save或其它方式保存到文件时,透明背景会变成黑色. 解决这个问题可以用GDI+.LIBPNG等,最简单的方式是使用CImage,直接将图像数据中的透明部分替换为白色或其他颜色. 优点:处理方法简单,效率高,只需CImage: 缺点:在图片
VC++ 在使用 CImage 的Draw 输入一个图像时,有时候会造成图像失真严重,解决的方法如下
VC++ 在使用 CImage 的Draw 输入一个图像时,有时候会造成图像失真严重,解决的方法如下 失真主要是由于变形造成的.只要设置一下变形的模式就可以了 ::SetStretchBltMode(*pDc, HALFTONE); ::SetBrushOrgEx(*pDc, , , NULL); img.StretchBlt(*pDc, , , , , SRCCOPY);
VC++使用CImage在内存中Bmp转换Jpeg图片
之前写了一篇<VC++使用CImage在内存中Jpeg转换Bmp图片>,通过CImage实现了在内存中Jpeg转Bmp. 既然Jpeg能转Bmp,那CImage也支持Bmp转Jpeg,与上一篇文章依赖CImage的Load函数相反,Bmp转Jpeg通过Save函数实现: 使用的也是IStream接口的函数重载,具体可以参考MSDN:http://msdn.microsoft.com/zh-cn/library/d06f3fhw.aspx 下面贴出使用CImage在内存中Bmp转换Jpeg的代码
VC++使用CImage在内存中Jpeg转换Bmp图片
VC++中Jpeg与Bmp图片格式互转应该是会经常遇到,Jpeg相比Bmp在图片大小上有很大优势. 本文重点介绍使用现有的CImage类在内存中进行转换,不需要保存为文件,也不需要引入第三方库. Libjpeg库在8以后也支持了内存读取和转换,不过使用起来较为麻烦,还需要手动编译,用CImage类完全可以实现,代码更简洁. 实现方法: VC++对Jpeg.Png图片的操作主要使用CImage,相信很多人用过CImage的Load和Save函数从文件读取或保存Jpeg或Png格式的文件,这两个重载
VC下加载多种格式图片的方法总结IPicture, CxImage, CImage(AtlImage), CPictureEx
尽管VC有提供相应的API和类来操作bmp位图.图标和(增强)元文件,但却不支持jpg.gif和png等格式的图片,而这几种格式却是常常要用到的.这里我给大家介绍两种办法来操作这些格式的图片. 1.用API OleLoadPicture来加载JPG.GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以通过这个COM接口来操作图片(实际上你也可以用API OleCrea
BASE64编码和解码(VC源代码) 并 内存加载 CImage 图像
BASE64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文本.完整的BASE64定义可见 RFC1421和 RFC2045.编码后的数据比原始数据略长,为原来的4/3.在电子邮件中,根据RFC822规定,每76个字符,还需要加上一个回车换行. 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位.数据不足3byte的话,于缓冲区中剩下的Bit用0补足.然后,每次取出6个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVW
vc++加载透明png图片方法-GDI+和CImage两种
转载自:http://blog.csdn.net/zhongbin104/article/details/8730935 先看看GDI+的方法方法1: 1.GDI+画透明图层(alpha)的png图片 stdafx加入如下: #include //初始化一下com口 #include "GdiPlus.h" using namespace Gdiplus; #pragma comment(lib,"gdiplus.lib") 开始初始化:在app类的声明
vc下打印透明背景图片
一.前言 刚接到个任务,要把带有透明背景的章子图片打印出来,开始觉得不是很简单吗,直接用vc自动生成的打印功能不就ok了.不过问题却不是想像的那么简单! 二.窗口中显示透明图片 在窗口中显示图片,可以用强大的CImage类,这个类能加载很多常见格式的图像文件,当然对于我要加载的png格式的透明图片也是可以的.具体的代码如下: CImage m_image; m_image.Load(_T("picture.png")); if (m_image.IsNull()) { MessageB
VC++中StretchBlt图像失真问题的解决办法
在 VC 中使用 StretchBlt 会碰到一些与点阵图大小缩放相关的一些问题.在扩展一个点阵图时,StretchBlt必须复制图素行或列.如果放大倍数不是原图的整数倍,那么此操作会造成产生的图像有些失真.如果目的矩形比来源矩形小,那么StretchBlt在缩小图像时就必须把两行(或列)或者多 行(或列)的图素合并到一行(或列).完成此操作有四种方法,它根据装置内容伸展模式属性来选择其中一种方法.您可使用 SetStretchBltMode 函数来修改这个属性.SetStretchBltMod
用CImage类来显示PNG、JPG等图片
系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:实现VC单文档.对话框程序显示图片效果 CImage 是VC.NET中定义的一种MFC/ATL共享类,也是ATL的一种工具类,它提供增强型的(DDB和DIB)位图支持,可以装入.显示.转换和保存多种格式的图像文件,包括BMP.GIF.JPG.PNG.TIF等.CImage是一个独立的类,没有基类.(CImage类是基于GDI+的,从VC.NET起引进,VC 6.0中没有.)ATL (Active Temp
VC操作Image的三种方法(收集)
忘记从哪来收集过来的资料了,暂且不管是哪位老兄写的,只道一声谢谢. 仅管VC有提供相应的API和类来操作bmp位图.图标和(增强)元文件,但却不支持jpg.gif和png等格式的图片,而这几种格式却是常常要用到的.这里我给大家介绍两种办法来操作这些格式的图片. 1.用API OleLoadPicture来加载JPG.GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture 函数实际上创建了一个IPicture类型的COM接口对象,然后我们可以
GDI 总结三: CImage类使用
前言 CImage类是基于GDI+的.可是这里为什么要讲归于GDI? 主要是基于这种考虑: 在GDI+环境中,我们能够直接使用GDI+ ,没多少必要再使用CImage类 可是,假设再GDI环境中,我们要想使用GDI+,有点麻烦.还得增加头文件.增加启动GDI+的代码和关闭GDI+的代码,显得太罗嗦了.GDI 的CBitmap 处理功能又有局限,仅仅能处理BMP格式的图片. 怎么办?这时.我们便可使用CImage类,由于这个类本身封装了GDI+得使用环境,所以无需我们手动设置,
MFC/VC CxImage 简单配置与使用 (完整版)
如果本篇文章还不能解决你在生成解决方案以及便宜过程中的问题 请参阅: http://blog.csdn.net/afterwards_/article/details/7997385 我个人配置过来成功运行的经验. CxImage是一个十分强大的图形库,我们在PC端上开发GUI程序时,时常会用到位图之外的各种格式的图片,然而令我们郁闷的是在Windows平台上的GDI对一些图片格式支持的很差,比如png格式!尽管mfc上有一个CImage类来解决这个问题,但是,CImage对png图片的支持其实
VC下加载JPG/GIF/PNG图片的两种方法
转载自:http://blog.sina.com.cn/s/blog_6582aa410100huil.html 仅管VC有提供相应的API和类来操作bmp位图.图标和(增强)元文件,但却不支持jpg.gif和png等格式的图片,而这几种格式却是常常要用 到的.这里我给大家介绍两种办法来操作这些格式的图片. 1.用API OleLoadPicture来加载JPG.GIF格式的图片(注:不支持PNG格式,另外GIF只能加载第一帧,且不支持透明) OleLoadPicture函数实际上创建了一个IP
供CImage类显示的半透明PNG文件处理方法
原文链接: http://blog.sina.com.cn/s/blog_4070692f010003gy.html 前补:没想到这个帖子好像挺多人看哪……看来大家都被这个png郁闷的够呛.显示png的代码其实很简单的,声明个CImage 变量,在初始化时候用.Load()读取外部的png图片,然后在OnPaint()里面用.Draw()来绘制就可以了. 我把源代码放到mofile了,内不含可执行文件,如果信得过我就请下载来看吧 :) http://pickup.mofile.com/0
VC/MFC 编程技巧大总结
1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改. 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息. 3 Java学习书推荐:<java编程思想> 4 在VC下执行DOS命令 a. system("md c:\\12"); b. WinExec("Cmd.exe /C md c:\\12", SW_HIDE); c. ShellExecute ShellExecute(NULL,
CImage 往Picture Control贴图 图像显示不正常
在使用CImage 往vc控件 picture Control 上贴图的时候图像显示不太正常如图: 已知原始图片的宽高为640*640 而我上面picture Control 控件宽高小于原始图像宽高. 从网上找到原因是因为: 图像被缩小显示了.DRAW默认的压缩算法显示后就是这样! 在 CImage::Draw 前面加这2句就能正常显示图片了 //设置缩放模式 halftone代表最高的压缩画质 SetStretchBltMode(pDC->m_hDC,HALFTONE); SetBrus
VC 下加载 JPG / JPEG / GIF / PNG 图片最简单的方法
VC MFC 提供的 API LoadBitmap / LoadImage 类 CBitmap 等都只能操作 BMP 位图,图标.对于其他常用的 JPG / JPEG / GIF / PNG 格式,它无能为力.VC 下怎样才能加载各种非 BMP 格式的图片呢? 下面介绍一种最简单的办法.用 CImage 类的 Load 函数加载图片,之后用 Detach 取得HBITMAP 句柄.取得图片的HBITMAP 句柄后就可以像操作 BMP 图片一样处理 JPG / JPEG / GIF / PNG 格
CImage中m_hBitmap!=0弹框报错
见图.查资料说是图片打印出现问题. 我的代码流程主要是:读图到CImage中,然后转移到数组中,将原对象销毁,对图像内容处理后,保存. 原来没问题,在加了参数循环后报错. 考虑到是循环中一些因素初始化操作导致的. cImage_far.Destroy(); cImage_near.Destroy(); 在每次循环中对象都会销毁.因此循环内应包含对象创建. [其他] HANDLE m_hDib,HBITMAP m_hBitmap,CBitmap* m_pBitmap它们有什么区别?以及它们和位图文
【VS开发】GDI+ 用CImage类来显示PNG、JPG等图片
系统环境:Windows 7 软件环境:Visual Studio 2008 SP1 本次目的:实现VC单文档.对话框程序显示图片效果 CImage 是VC.NET中定义的一种MFC/ATL共享类,也是ATL的一种工具类,它提供增强型的(DDB和DIB)位图支持,可以装入.显示.转换和保存多种格式的图像文件,包括BMP.GIF.JPG.PNG.TIF等.CImage是一个独立的类,没有基类.(CImage类是基于GDI+的,从VC.NET起引进,VC 6.0中没有.) ATL (Active T
热门专题
java 根据坐标查询最近的点
conda 安装MySQLdb
echart把后台数据转为日期
获取枚举的下一个元素
centos 创建nginx软连接
mac os 的 sdk环境变量配置
linux springboot 绝对路径
sftp.cd方法用途
css combobox list 展示被遮挡
fspecial函数的作用
sprintf浮点数转字符串 数组
layui 气泡提示
rescue mode什么意思
vmware删除swap文件
MongoDB 的地理索引(Geo2D) 工作机制
php接受socket.emit
pandas读取csv文件为什么不以首行为
合并list属性相同的对象
wpf使用reportviewer控件表头固定
全球语言定义 ja zh