2011-03-12 103 views
0

我有两个矩形图像:一个是前景,另一个是背景。我正在尝试混合前景图像的边缘,以便前景图像看起来像是背景图像的“部分”。换句话说,我试图应用透明效果,前景图像的不透明度从图像中心的100%下降到边缘的0%。我发现这个操作有时被不同的名称引用,例如:alpha合成,alpha混合,边缘羽化或边缘透明。这里是我试图获得的效果的更详细的描述:http://en.wikipedia.org/wiki/Alpha_compositingAlpha在UIImage的边缘上混合

我已经看过CGContext文档,但是我还没有找到任何可以开箱即用的功能。

有什么办法可以做到这一点使用CGContext甚至OpenGL?有没有办法在非矩形图像上做到这一点?我知道,所有的图像都是矩形的,但我的意思是一个图像,让我们说,一个圆圈和周围的透明区域。

+0

如果您可以自由改变图像本身,那么就这样吧。使用CGContext是可能的,但比简单地翻转开关更困难。一般的方法是创建位图上下文,将图像渲染到其上(使用任何适用的转换),然后更改位图上下文中的alpha值,然后再次将位图上下文转换为可显示的图像。不漂亮。 – mvds 2011-03-12 14:42:58

+0

看看http://stackoverflow.com/questions/4609132/iphone-replacing-a-block-of-pixels-in-an-image-with-another-block-of-pixls/4609333#4609333,和使用'view.renderInContext:'将自定义像素级别编辑应用到任何视图。 – mvds 2011-03-12 14:45:58

+0

@mvds:感谢您的帮助,我找到了解决方案。 – Manu 2011-04-05 20:51:10

回答