2010-01-30 130 views
4

我有一些具有透明背景的PNG,我希望以編程方式添加陰影。我已經看到了爲方形對象添加陰影的示例,但沒有看到任何複雜的形狀。使用Cocoa將陰影添加到PNG

所以這兩個步驟,我認爲我必須做的是:

  • 隔離PNG形狀
  • 畫出模糊的背後PNG的形狀,褪色和偏移。

我沒有太多的Cocoa繪圖經驗,所以任何有關從哪裏開始的洞察力將非常感謝!

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

回答

3

最簡單的方法是在繪製圖像之前,在您的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

0

我不是一個真正的圖形的人,但對於這一點:如果你對這些圖像的面膜,或者您可以編程方式創建一個,那麼你也許可以使用模糊函數添加一個像效果一樣的陰影。

Photoshop/Acorn/Pixelmator中的實驗?

+0

試圖以編程方式做到這一點,所以,當他們在應用程序正在旋轉,他們似乎有相同的光源。 – 2010-01-30 18:12:42

0

既然你想要的陰影像他們都具有相同的光源......好像你實際上可能是有一個OpenGL視圖,從上方投射光富裕和圖像將一個平面上面稍微坐投下陰影。我會尋找3D OpenGL框架,可以讓你很容易地添加東西...