我想在Core Graphics中做类似于Photoshop内部阴影效果的操作。如果我使用此效果绘制/填充路径,我想获得类似于以下内容的内容:alt text http://i45.tinypic.com/357kile.png
答案 0 :(得分:11)
以下是从后到前创建此图像所需的图层:
基色,在本例中为白色背景。
影子。
塑造阴影的形状。这是通过找到内部形状的边界框,将该框扩展超过阴影的宽度,然后在框中切出一个带有内部形状的孔来实现的。
用内部形状剪裁这些。
然后最终绘制周围的彩色形状,在这种情况下,切出内部形状的矩形。
注意:根据预期的外观,投射阴影的形状可能与填充前景色的形状相同或不同。内部形状和外部形状之间的薄部分会产生减小的阴影。如果不需要这种效果,则需要更大的外形以获得一致的内部阴影。此外,如果阴影超出外部形状,则需要明确剪切阴影。
要在中间绘制一个带孔的形状,就像这个示例形状一样,您需要绘制一个带有两个子路径的路径。一个子路径是外部框,另一个是内部不规则形状。如果您使用的是默认非零绕组编号规则,则需要指定外框的方向与内部不规则形状相反的方向。例如,以顺时针顺序指定外框的点将需要以逆时针顺序指定内部形状的点。有关详细信息,请参阅Quartz 2D Programmer's Guide's section on Paths。
答案 1 :(得分:0)