C++加载PNG图片
CImage加载png会丢失Alpha通道。
使用GDI+就可以。
#include <Windows.h>
#include <Gdiplus.h>
#pragma comment(lib, "Gdiplus.lib")
using namespace Gdiplus;
using namespace DllExport;
ULONG_PTR gdipid;
// 初始化
GdiplusStartInput gsi;
GdiplusStart(&gsi, &gdipid);
// 加载图片(常用格式均支持)
// API版
GpBitmap *bmp;
GdipCreateBitmapFormFile(L"文件名.png", &bmp);
HBITMAP hBmp;
SIZE sBmp;
GdipGetImageWidth((GpImage*)bmp, LPUINT(sBmp.cx));
GdipGetImageHeight((GpImage*)bmp, LPUINT(sBmp.cy));
GdipCreateHBITMAPFormBitmap(bmp, 0, &hBmp);
GdipDi***Image((GpImage*)bmp); // 记不到了所以打了*
// 类版
Bitmap *bmp = Bitmap::FormFile(L"文件名.png");
SIZE sBmp = {bmp->GetWidth(), bmp->GetHeight()};
HBITMAP hBmp = bmp->GetHBITMAP(0);
delete bmp;
// 这样就把png加载到了,HBITMAP里面,注意啊,画png一定要用AlphaBlend或GdiAlphaBlend函数画,才有Alpha通道。
// 卸载GDI+
GdiplusShutdown(gdipid);HBITMAP hBmp; // 加载过程已有这里省去
HDC hMemDC = CreateCompatibleDC(0);
BLENDFUNCTION bf = {0, 0, 255, AC_SRC_ALPHA};
SelectObject(hMemDC, hBmp);
AlphaBlend(目标DC, 目标x, 目标y, 目标宽度, 目标高度, hMemDC, 来源x, 来源y, 来源宽度, 来源高度, bf);
DeleteDC(hMemDC);
这样就可以快速画出带Alpha通道的png,把255改成其它数字可以调整透明度。
原文地址
C++加载PNG图片相关推荐
- 关于 android 加载 res 图片 out of memory 问题 解决 同样适用于 sd卡图片
2019独角兽企业重金招聘Python工程师标准>>> 发现android 加载res图片如果过多也会崩溃 android 也是使用 Bitmap bm = BitmapFacto ...
- UIWebView如何加载本地图片
UIWebView如何加载本地图片 UIWebView加载本地图片是有实用价值的.比方说,有时候我们需要本地加载静态页来显示相关帮助信息,而这些帮助信息当中含有很多很多的富文本,用代码实现难度较大,这 ...
- 解决Android 加载大图片OOM
图片在Android 占用内存计算 假如一张图的像素为100×200,那么他在内存中占用的内存为: 100×200(像素点) × 4(每个像素点占用的内存,默认为4.) public Bitmap.C ...
- Android加载大图片OOM异常解决
Android加载大图片OOM异常解决 参考文章: (1)Android加载大图片OOM异常解决 (2)https://www.cnblogs.com/jevan/archive/2012/07/05 ...
- python怎么加载图片-怎样用python加载dicom图片
用python加载dicom图片的方法:使用pydicom.CV2.numpy.matplotlib等库即可.pydicom库是专门用来处理dicom图像的python专用库. python读取DIC ...
- 【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )
文章目录 一.加载网络图片 二.加载静态图片 三.加载本地图片 四.完整代码示例 五.相关资源 一.加载网络图片 参考 [Flutter]Image 组件 ( Image 组件简介 | Image 构 ...
- thinkphp+ajax无刷新分页并加载显示图片
2019独角兽企业重金招聘Python工程师标准>>> 最近自己用thinkphp和bootstrap做一个小站点,在用到ajax与后台数据库交互实现无刷新分页时,因为我需要返回的数 ...
- Android手机内存图片读取,有效解决Android加载大图片内存溢出的问题
今天在交流群里,有人问我他经常遇到加载图片时内存溢出的问题,遇到的情况还是在自己的测试机或者手机里没有问题,做好了, 到了客户手机里就内存溢出了.其实有时候不同的手机和不同的系统对内存的要求不一样,尤 ...
- 剖析Picasso加载压缩本地图片流程(解决Android 5.0部分机型无法加载本地图片的问题)
之前项目中使用Picasso遇到了一个问题:在Android 5.0以上版本的部分手机上使用Picasso加载本地图片会失败.为了解决这个问题,研究了一下Picasso加载和压缩本地图片的流程,才有了 ...
- MFC——在视图窗口加载背景图片
1.若是文档视图程序的话,在视图类的OnDraw(CDC* pDC)函数中调用pDC->TextOut()函数,就像平常输出文字一样.若是嫌文字的背景颜色破坏了图像,可以在输出文字之前调用pDC ...
最新文章
- 一、 函数调用栈,执行上下文及变量对象
- java什么是静态_什么是java静态
- 狼道:强者的成人礼(第2版)
- yeoman+grunt/gulp+bower构建angular项目
- java的properties文件中的换行书写
- iOS笔记(一)GCD多线程:信号量和条件锁
- H5中 video 使用border-radius失效解决方法
- 人件第二版(中文版)pdf
- 《信号与线性系统分析》学习心得
- python通过ip池爬_如何自建PYTHON爬虫代理IP池
- bootcamp空间不足_Bootcamp安装WindowsXP补丁时C盘空间不足的解决措施
- aforge java_java(一些java API)或C#(emgucv,dshownet,Aforge.NET)中的实时对象跟踪
- VS Code下载安装教程
- HTML的路径和链接、注释、特殊字符
- 计算机视觉知识表征,计算机视觉基础 - 边缘和轮廓检测
- 认识计算机教案模板表格,word表格制作教学设计范文
- php推送消息到邮箱,thinkphp3.2通过PHPMailer发送邮件推送消息
- 异常-Exception
- Jetbrains系列产品
- 解读测试能力素质模型
热门文章
- 海银财富领军人物:韩宏伟(军人企业家)
- 【Javascript 基础】课堂笔记1
- python怎么算二元一次方程_用python解决高数所有计算题--sympy求解极限、积分、微分、二元一次方程等...
- 辛普森悖论如何影响AB测试
- linux学习笔记-第三课-ls,cd,alias,PASH,目录结构,快捷键
- HDU - 4747 Mex(线段树)
- pinbox: 我用过最好的收藏工具
- Python爬取数据存储到本地文本文件
- 合影效果java_【蚂蚁课堂】四十三:如何拍酷炫集体照?
- 流量/访客数/曝光量/浏览量/pv/uv