Alpha混合在UIImage的边缘

时间:2011-03-12 14:32:40

标签: iphone uiimage transparency alpha blending

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

我查看了CGContext文档,但是我没有找到任何可以开箱即用的函数。

使用CGContext甚至OpenGL有没有办法做到这一点?有没有办法在非矩形图像上进行?我知道,所有的图像都是矩形的,但我的意思是一个图像,比方说,一个圆圈,一个透明的区域。

1 个答案:

答案 0 :(得分:1)

iOS库中的CGImageCreateWithMask()函数可以在边缘上降低不透明度的情况下进行Alpha混合。通过组合这两个链接中的代码,可以获得一些工作:

http://iosdevelopertips.com/cocoa/how-to-mask-an-image.html

Creating mask with CGImageMaskCreate is all black (iphone)

遮罩中每个像素的灰度级(从黑色到白色)将定义混合期间的不透明度。