话不多说,直接上代码。
在开始前,需要先配置一下附加依赖项,找到项目—属性—配置属性—链接器—输入,点击右侧第一行附加依赖项下行的编辑,添加winmm.lib

方式一:
// 使用 Windows GDI 函数实现透明位图

#include <graphics.h>
#include <conio.h>
#pragma comment( lib, "MSIMG32.LIB")
void transparentimage(IMAGE* dstimg, int x, int y, IMAGE* srcimg, UINT transparentcolor)
{HDC dstDC = GetImageHDC(dstimg);HDC srcDC = GetImageHDC(srcimg);int w = srcimg->getwidth();int h = srcimg->getheight();// 使用 Windows GDI 函数实现透明位图TransparentBlt(dstDC, x, y, w, h, srcDC, 0, 0, w, h, transparentcolor);
}

参数1:NULL即可,参数2、参数3为图片输出的坐标,参数4为源图片的指针,参数5为要透明的底色(若图片为透明图片,默认为BLACK)
实际使用:

 transparentimage(NULL, 200, 100, &picture, BLACK);

此方法兼容性良好,支持任意底色的png图片,但透明效果取决于图片本身,若图片底色与图片本身颜色相近,透明化效果会大打折扣,如出现很大的黑色边缘块。

方式二:

#include <graphics.h>
#include <conio.h>
#pragma comment( lib, "MSIMG32.LIB")
void transparentimage3(IMAGE* dstimg, int x, int y, IMAGE* srcimg) //新版png
{HDC dstDC = GetImageHDC(dstimg);HDC srcDC = GetImageHDC(srcimg);int w = srcimg->getwidth();int h = srcimg->getheight();BLENDFUNCTION bf = { AC_SRC_OVER, 0, 255, AC_SRC_ALPHA };AlphaBlend(dstDC, x, y, w, h, srcDC, 0, 0, w, h, bf);
}

实际使用:

 transparentimage3(NULL, 220, 100, &picture[0]);//透明png

与上面的使用方法类似,但不需要指定透明的颜色,此种方法透明效果非常好,但只支持底色本身为透明色的png图片,即在windows下打开时就没有底色的png图片。

Easyx实现png透明贴图的两种方法(无需掩码图)相关推荐

  1. matlab 图像转视频教程,Matlab制作视频并转换成gif动态图的两种方法

    一.第一个方法比较简单,就是使用movie(f)直接取生成AVI视频文件. %% f(t)-->f(4*t+12) 并且验证%% function Signal_change() tic%记录程 ...

  2. python matplotlib在一张画布上画多个图的两种方法,plt.subplot(),plt.subplots()。

    Matplotlib在一张画布上画多个图的两种方法,plt.subplot,plt.subplots. 目录 回顾 plt.subplots()画法 plt.subplot()画法 保存 回顾 之前也 ...

  3. 轮播图的两种方法及自动轮播

    轮播图共计四种方法,本期先向大家分享两种,下期会补充剩余二个方法 公共部分: * {padding: 0px;margin: 0px;}.banner {width: 600px;margin: au ...

  4. Tableau制作漏斗图的两种方法

    很多业务都是由多个流程.多个环节组成,每一个环节的数据很多时候呈现逐级递减的趋势,如电商中用户的下单数据. 漏斗图主要用于展现每个环节的留存.转化情况,本文讲一下如何使用Tableau制作漏斗图. 本 ...

  5. python3+matplotlib绘制双轴折线图(两种方法)

    Background 这里提供两种方法,一种是基于pandas,另一种是基于twinx. 1.先看最终效果图 pandas twinx 2.源码 import pandas as pd import ...

  6. Matlab画三维图的两种方法

    2010-11-07  21:20:30 zz: http://hi.baidu.com/mynana/blog/item/3c79c1ce6b65cb0393457e7a.html 这几天看到Ras ...

  7. Python可视化 | Matplotlib绘制圆环图的两种方法!

    人生苦短,快学Python!今天给大家介绍Python可视化之环形图的绘制. 环形图,也被称为圆环图.它在功能上与饼图相同,只是中间有一个空白,并且能够同时支持多个统计数据.与标准饼图相比,环形图提供 ...

  8. Matplotlib 绘制圆环图的两种方法!

    作者 | 快快 来源 | 快学Python 人生苦短,快学Python!今天给大家介绍Python可视化之环形图的绘制. 环形图,也被称为圆环图.它在功能上与饼图相同,只是中间有一个空白,并且能够同时 ...

  9. MP4文件如何转换成GIF动态图?两种方法帮你搞定

    要将 MP4 文件转换为 GIF 动态图,您可以使用一些免费的在线工具或者软件进行转换.以下是两种常用的方法: 方法一:使用软件 1.下载并安装一个视频转换软件,例如 FFmpeg 或者 GifCam ...

  10. 潇洒郎:GMIP——美图秀秀——两种方法——图片透明化,游戏界面人物,对象需要透明

    今天跟大家分享一下如何将图片处理为透明化.因为做游戏界面的时候我们为了不让界面显得很突兀.看起来不和谐,所以需要将图片该透明的透明. 先说下图片小知识: 将图片划分为4维通道:RGBA.其中RGB代表 ...

最新文章

  1. 给妹子讲python-S01E15详解python迭代环境
  2. PDF与doc格式互换
  3. 家用计算机键盘图,电脑键盘示意图,详细教您如何正确的使用键盘
  4. linux星期六字符,linux shell系列10 判断某个月中的星期六和星期天
  5. 【B站视频笔记】linux 进程间通信(ipc)信号(软中断信号)signal库函数、可靠信号和不可靠信号、信号集sigprocmask(信号掩码、信号递达Delivery、信号未决Pending)
  6. Kotlin实战指南九:延迟初始化
  7. spring+redis自主实现分布式session(非spring-session方式)
  8. short s=1;s=s+1有问题吗?short s=1;s+=1;有问题吗?
  9. JAVA程序员面试32问(附答案)(转载)
  10. JavaParser使用指南
  11. python k线斜率计算公式_通达信K线斜率指标公式
  12. iOS-UIGraphics将两个图片合并成一张
  13. Linux驱动设计——硬件基础
  14. elementui icon图标大全
  15. 互联网发展十几年,你错过了哪些创业机会
  16. TiDB 高并发写入常见热点问题及规避方法
  17. String字符串的最大长度是多少?
  18. 一文详解TDSQL PG版Oracle兼容性实践
  19. vscode Vue ts 自定义模板
  20. SSD刮目相看 希捷750GB混合硬盘评测

热门文章

  1. 【Office Word 2016】定义新的多级样式,输入编号格式,点击不出现输入光标问题
  2. 微服务追踪SQL(支持Isto管控下的gorm查询追踪)
  3. ppt演示,怎么变看备注,变演示,而投影的屏幕上不显示备注?
  4. 【C#】图片按照规定尺寸和大小保存
  5. 名帖223 赵孟頫 行书三跋《韩滉五牛图卷》
  6. 2021-08-05 JavaScript
  7. LVDS、LVPECL、CML、miniLVDS、RSDS
  8. Day87.二手房管理: 数据字典 (zTree组件)、小区管理
  9. 微信小程序view标签内容关于文本过长,自动换行对的问题
  10. c语言中希尔排序的程序,c语言实现希尔排序算法