如何使用PS创建掩码图,从而在背景图片里实现透明贴图的效果 easyx图形库中的三元光栅操作码

您所在的位置:网站首页 ps矢量图制作方法 如何使用PS创建掩码图,从而在背景图片里实现透明贴图的效果 easyx图形库中的三元光栅操作码

如何使用PS创建掩码图,从而在背景图片里实现透明贴图的效果 easyx图形库中的三元光栅操作码

2024-07-17 00:26| 来源: 网络整理| 查看: 265

最近在写一个小游戏的时候发现,在背景图片中实现透明贴图,需要用到掩码图这个图,很多人不知道如何去创建掩码图,而去网上找掩码图,找半天也找不到合适的,所以笔者分享了我自己如何用Photoshop去创建掩码图的过程。希望对读者有所帮助。

基本概念介绍:

“三元光栅操作”是指源图像与目标图像的位合并操作。

操作对象涉及三个:源图像、目标图像、当前填充颜色(注:透明贴图不使用“当前填充颜色”)。

位操作包括:AND、NOT、OR、XOR。

全部的三元光栅操作码请参考 EasyX 在线帮助:EasyX 文档 - 三元光栅操作

例如,三元光栅操作码“PATPAINT”,查表得对应的布尔功能为“DPSnoo”(逆波兰表示法,其中 D、S、P 分别表示目标图像、源图像、当前填充颜色),该表达式展开后为:D or (P or (not S)),表示先将源图像按位取反,再与当前填充颜色执行 OR 操作,在与目标图像执行 OR 操作。这就是 putimage 函数以 PATPAINT 参数执行后的显示结果。

1.两种方法,这里针对第二种方法进行讲解。

第一种:

原图:需要透明的部分,用纯黑色表示。

掩码图:与原图对应。原图需要透明的部分,用纯白色表示;原图需要显示的部分,用纯黑色表示。

目标图:通常就是屏幕,不用担心屏幕显示什么。

第二种:

原图:需要透明的部分,用纯白色表示。

掩码图:原图需要透明部分用纯黑色表示,需要显示的部分用纯白色表示。

2.PS中的操作

在PS中打开需要创造掩码图的原图,在左边侧栏中找到快速选择工具(可通过快捷键W来选中),

然后鼠标右击,选择中间的快速选择工具,选择图片需要显示的部分,边缘部分可调小选择的圈圈,来慢慢的选择,尽量把图形的大部分选中,然后CTRL+C复制。然后选择新建(CTRL+N),选择其中的剪贴板。

注意宽度与高度要与原图的一致,而在哪里看原图的宽高参数呢,打开原图所在文件夹,鼠标右击原图,打开属性,如下图就可看见图片的宽高像素了。

然后背景内容选择黑色。

然后粘贴就行,然后在菜单栏里点击图像,选择模式里面的灰度,在弹出的窗口里选择确定就行。

然后还是图像里,找到调整里的阈值,并设为1.

便得到如下样式的掩码图了,但是细心的读者发现,图片内部还是有不少的黑点,那么可以在左边侧栏中找到污点修复工具J,然后在菜单栏的下面,调节圈圈的大小,把圈圈调小一点。然后对图片内部的黑点进行消除即可。

3.代码的操作 #include #include IMAGE bk; IMAGE en[2]; void loadimg() { loadimage(&bk, "./images/background.png"); loadimage(&en[0], "./images/me2222.png");//掩码图 loadimage(&en[1], "./images/me212.png");//原图 } void windraw() { putimage(0, 0, &bk); putimage(100, 20, &en[0],NOTSRCERASE);//NOTSRCERASE putimage(100, 20, &en[1],SRCINVERT);//SRCINVERT } int main() { initgraph(500, 700); loadimg(); windraw(); while (1) { } return 0; }

该代码是先加载掩码图,然后是原图。重点是在putimage函数参数的后面,添加NOTSRCERASE,和SRCINVERT。效果如下:

如果是采取第一种方法,那么这里的操作码就换成SRCAND和SRCPAINT。

特别注意第二种方法中,必须确保原图的需要透明部分为白色,最保险的方法是在PS中重新设置一下图片的背景色,设置为白色。如果原图的需要透明部分不是白色的话,那么采取所给的方法是实现不了透明贴图的。笔者就是在这里遭遇了BUG,找了半天才发现原来透明部分并不是白色的。

如果这片文章对读者有所帮助,请点个赞支持一下笔者。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3