核心图形中的内部阴影

时间:2010-01-30 19:28:46

标签: graphics photoshop core shadow

我想在Core Graphics中做类似于Photoshop内部阴影效果的操作。如果我使用此效果绘制/填充路径,我想获得类似于以下内容的内容:alt text http://i45.tinypic.com/357kile.png

2 个答案:

答案 0 :(得分:11)

以下是从后到前创建此图像所需的图层:

基色,在本例中为白色背景。

影子。

塑造阴影的形状。这是通过找到内部形状的边界框,将该框扩展超过阴影的宽度,然后在框中切出一个带有内部形状的孔来实现的。

用内部形状剪裁这些。

然后最终绘制周围的彩色形状,在这种情况下,切出内部形状的矩形。

注意:根据预期的外观,投射阴影的形状可能与填充前景色的形状相同或不同。内部形状和外部形状之间的薄部分会产生减小的阴影。如果不需要这种效果,则需要更大的外形以获得一致的内部阴影。此外,如果阴影超出外部形状,则需要明确剪切阴影。

要在中间绘制一个带孔的形状,就像这个示例形状一样,您需要绘制一个带有两个子路径的路径。一个子路径是外部框,另一个是内部不规则形状。如果您使用的是默认非零绕组编号规则,则需要指定外框的方向与内部不规则形状相反的方向。例如,以顺时针顺序指定外框的点将需要以逆时针顺序指定内部形状的点。有关详细信息,请参阅Quartz 2D Programmer's Guide's section on Paths

答案 1 :(得分:0)

石英中的插入/内部阴影

将此代码放在xcode游乐场中,您就在路上:

https://gist.github.com/eonist/520fa35958c123ad6840