话不多说,直接上代码。
在开始前,需要先配置一下附加依赖项,找到项目—属性—配置属性—链接器—输入,点击右侧第一行附加依赖项下行的编辑,添加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. OpenCV中# define CV_EXPORTS __declspec(dllexport)的含义
  2. arm linux读cpu id,基于ARM架构的芯片获取CPU信息(cpuID)的多种方法
  3. 【javascript高级教程】JavaScript Number 对象
  4. Clojure 学习入门(5)- 关键字
  5. 从零开始实现Adam优化算法
  6. Weblogic下载与安装
  7. matlab状态空间程序,实验四用MATLAB求解状态空间模型
  8. 智能聊天机器人的技术综述
  9. hp台式计算机怎么进bois,HP笔记本怎么进BIOS?惠普电脑进入BIOS方法
  10. psCS6图片文件无法直接拖入的解决方法
  11. httclient出现的entity consumed
  12. 青春日志html,人民日报青春日记:做有信仰的奋斗者
  13. 4款暗藏惊喜的Windows软件,硬核又实用,满足你工作中各种需求
  14. 服务器的GPU显卡位置,GPU显卡服务器
  15. 2021-1-31 pikachu之sql注入
  16. 光做魔杖,玩转液滴,登上《Science Advances》!
  17. linux上打开psd格式图片--gimp
  18. 数字条纹投影~标准N步相移主值相位计算式推导过程
  19. 万能五笔输入法导致vs2013 xshell中文乱码
  20. 自定义View色盘的实现

热门文章

  1. 迪克斯特拉(Dijkstra)算法原理及实现(Java)
  2. Java接口回调详解
  3. day01【Kotlin基础】从零开始,最美的梦想一定最疯狂
  4. VM虚拟机下给Ubuntu 目录分区增加容量的方法
  5. 大学计算机课旷课检讨书,大学旷课检讨书1000字
  6. Linux机器插上显示器无反应,台式电脑开机后显示屏无反应,但主机正常启动怎么解决?...
  7. 从关键字~C语言 — 期末考,考研,面试中那些你不得不知道的C语言关键字细节
  8. uc-osII系统移植
  9. 超强牛人语录50条,经典中的经典
  10. 负载均衡技术(一)———负载均衡技术介绍