Easyx实现png透明贴图的两种方法(无需掩码图)
话不多说,直接上代码。
在开始前,需要先配置一下附加依赖项,找到项目—属性—配置属性—链接器—输入,点击右侧第一行附加依赖项下行的编辑,添加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透明贴图的两种方法(无需掩码图)相关推荐
- matlab 图像转视频教程,Matlab制作视频并转换成gif动态图的两种方法
一.第一个方法比较简单,就是使用movie(f)直接取生成AVI视频文件. %% f(t)-->f(4*t+12) 并且验证%% function Signal_change() tic%记录程 ...
- python matplotlib在一张画布上画多个图的两种方法,plt.subplot(),plt.subplots()。
Matplotlib在一张画布上画多个图的两种方法,plt.subplot,plt.subplots. 目录 回顾 plt.subplots()画法 plt.subplot()画法 保存 回顾 之前也 ...
- 轮播图的两种方法及自动轮播
轮播图共计四种方法,本期先向大家分享两种,下期会补充剩余二个方法 公共部分: * {padding: 0px;margin: 0px;}.banner {width: 600px;margin: au ...
- Tableau制作漏斗图的两种方法
很多业务都是由多个流程.多个环节组成,每一个环节的数据很多时候呈现逐级递减的趋势,如电商中用户的下单数据. 漏斗图主要用于展现每个环节的留存.转化情况,本文讲一下如何使用Tableau制作漏斗图. 本 ...
- python3+matplotlib绘制双轴折线图(两种方法)
Background 这里提供两种方法,一种是基于pandas,另一种是基于twinx. 1.先看最终效果图 pandas twinx 2.源码 import pandas as pd import ...
- Matlab画三维图的两种方法
2010-11-07 21:20:30 zz: http://hi.baidu.com/mynana/blog/item/3c79c1ce6b65cb0393457e7a.html 这几天看到Ras ...
- Python可视化 | Matplotlib绘制圆环图的两种方法!
人生苦短,快学Python!今天给大家介绍Python可视化之环形图的绘制. 环形图,也被称为圆环图.它在功能上与饼图相同,只是中间有一个空白,并且能够同时支持多个统计数据.与标准饼图相比,环形图提供 ...
- Matplotlib 绘制圆环图的两种方法!
作者 | 快快 来源 | 快学Python 人生苦短,快学Python!今天给大家介绍Python可视化之环形图的绘制. 环形图,也被称为圆环图.它在功能上与饼图相同,只是中间有一个空白,并且能够同时 ...
- MP4文件如何转换成GIF动态图?两种方法帮你搞定
要将 MP4 文件转换为 GIF 动态图,您可以使用一些免费的在线工具或者软件进行转换.以下是两种常用的方法: 方法一:使用软件 1.下载并安装一个视频转换软件,例如 FFmpeg 或者 GifCam ...
- 潇洒郎:GMIP——美图秀秀——两种方法——图片透明化,游戏界面人物,对象需要透明
今天跟大家分享一下如何将图片处理为透明化.因为做游戏界面的时候我们为了不让界面显得很突兀.看起来不和谐,所以需要将图片该透明的透明. 先说下图片小知识: 将图片划分为4维通道:RGBA.其中RGB代表 ...
最新文章
- OpenCV中# define CV_EXPORTS __declspec(dllexport)的含义
- arm linux读cpu id,基于ARM架构的芯片获取CPU信息(cpuID)的多种方法
- 【javascript高级教程】JavaScript Number 对象
- Clojure 学习入门(5)- 关键字
- 从零开始实现Adam优化算法
- Weblogic下载与安装
- matlab状态空间程序,实验四用MATLAB求解状态空间模型
- 智能聊天机器人的技术综述
- hp台式计算机怎么进bois,HP笔记本怎么进BIOS?惠普电脑进入BIOS方法
- psCS6图片文件无法直接拖入的解决方法
- httclient出现的entity consumed
- 青春日志html,人民日报青春日记:做有信仰的奋斗者
- 4款暗藏惊喜的Windows软件,硬核又实用,满足你工作中各种需求
- 服务器的GPU显卡位置,GPU显卡服务器
- 2021-1-31 pikachu之sql注入
- 光做魔杖,玩转液滴,登上《Science Advances》!
- linux上打开psd格式图片--gimp
- 数字条纹投影~标准N步相移主值相位计算式推导过程
- 万能五笔输入法导致vs2013 xshell中文乱码
- 自定义View色盘的实现
热门文章
- 迪克斯特拉(Dijkstra)算法原理及实现(Java)
- Java接口回调详解
- day01【Kotlin基础】从零开始,最美的梦想一定最疯狂
- VM虚拟机下给Ubuntu 目录分区增加容量的方法
- 大学计算机课旷课检讨书,大学旷课检讨书1000字
- Linux机器插上显示器无反应,台式电脑开机后显示屏无反应,但主机正常启动怎么解决?...
- 从关键字~C语言 — 期末考,考研,面试中那些你不得不知道的C语言关键字细节
- uc-osII系统移植
- 超强牛人语录50条,经典中的经典
- 负载均衡技术(一)———负载均衡技术介绍