使用Cocoa将阴影添加到PNG

问题描述:

我有一些具有透明背景的PNG,我希望以编程方式添加阴影。我已经看到了为方形对象添加阴影的示例,但没有看到任何复杂的形状。使用Cocoa将阴影添加到PNG

所以这两个步骤,我认为我必须做的是:

  • 隔离PNG形状
  • 画出模糊的背后PNG的形状,褪色和偏移。

我没有太多的Cocoa绘图经验,所以任何有关从哪里开始的洞察力将非常感谢!

截图: alt text http://www.iworkinprogress.com/images/pngExample.png

最简单的方法是在绘制图像之前,在您的drawRect:中调用CGContextSetShadow

- (void)drawRect:(CGRect)invalidRect 
{ 
    CGContextRef c = UIGraphicsGetCurrentContext(); 
    CGContextSetShadow(c, CGSizeMake(5.0f, 5.0f), 5.0f); 
    [myImage drawAtPoint:CGPointMake(50.0f, 50.0f)]; 
} 
+1

谢谢。经过一些重组,得到了这个工作。 – 2010-01-31 16:02:00

我不是一个真正的图形的人,但对于这一点:如果你对这些图像的面膜,或者您可以编程方式创建一个,那么你也许可以使用模糊函数添加一个像效果一样的阴影。

Photoshop/Acorn/Pixelmator中的实验?

+0

试图以编程方式做到这一点,所以,当他们在应用程序正在旋转,他们似乎有相同的光源。 – 2010-01-30 18:12:42

既然你想要的阴影像他们都具有相同的光源......好像你实际上可能是有一个OpenGL视图,从上方投射光富裕和图像将一个平面上面稍微坐投下阴影。我会寻找3D OpenGL框架,可以让你很容易地添加东西...

我发现这个类别是非常有用的:UIImage的+ Shadow.m

https://gist.github.com/kompozer/387210