码迷,mamicode.com
首页 > 其他好文 > 详细

常用技巧(一):利用位运算去掉贴图空白部分

时间:2015-05-30 13:35:04      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:常用技巧

一、问题描述

在游戏开发的时候,特别是在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运算得到最终效果。


最后附上手稿:

技术分享


常用技巧(一):利用位运算去掉贴图空白部分

标签:常用技巧

原文地址:http://blog.csdn.net/hezijian22/article/details/46273523

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!