0

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

我查看了 CGContext 文档,但我没有找到任何开箱即用的功能。

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

4

1 回答 1

1

iOS 库中的CGImageCreateWithMask()函数可以进行 alpha 混合,同时降低边缘的不透明度。通过组合这两个链接中的代码,可以得到一些工作:

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

用 CGImageMaskCreate 创建蒙版是全黑的(iphone)

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

于 2011-04-05T20:50:25.210 回答