一、问题描述
在游戏开发的时候,特别是在2D游戏开发,我们经常会遇到这样一个问题,我们选用的是一张jpg/bmp图片,它不像png那样拥有透明的像素点。所以当我们把图片放到我们的屏幕的时候可能会出现如下问题:
我们的图片,我想把他贴到我们的背景上面
预期效果:
实际效果:
二、解决办法
1、首先我们先对图片素材做一点点的修改
我们需要两张图片:一张为原图,一张为屏蔽图
原图,注意这里我们不需要的部分必须为黑色
屏蔽图,只有黑白两色,需要的部分为黑色,不需要的部分为白色
2、将屏蔽图与背景图作位AND运算
屏蔽图只有黑白两色,我们分两种情况讨论:
1)屏蔽图的黑色(0X000000)AND 背景图颜色(随意) = 黑色(0X000000)
2)屏蔽图的白色(0XFFFFFF)AND 背景图颜色(随意) = 背景图颜色
得到的效果图如下:
3、将新得到的图片(暂时命名为新背景)与原图作位OR运算
原图也只有两种情况,一种是我们需要的部分(颜色随意),一种为我们不需要的部分(颜色为黑色)
1)需要的部分(随意) OR 新背景(黑色0X000000) = 需要的部分的颜色
2)不需要的部分(黑色0X000000)OR 新背景 = 新背景的颜色
得到的效果图如下:
三、总结
可以一下的步骤来去掉一张图片中我们不需要的空白部分:
1、把不需要的部分涂为黑色(原图)
2、准备一张屏蔽图
3、屏蔽图与背景图作位AND运算得到新背景图
4、新背景图与原图作OR运算得到最终效果。
最后附上手稿:
时间: 2024-11-16 02:47:53