2010-11-25 56 views
5

如果我不是真的很模糊的圖像的確切色調等,是否有一個快速和骯髒的方法來繪製一個NSImage稍微變暗,像這樣?我在網上搜索,無法真正找到我要找的東西(但在理解圖形和正確的技術術語方面,我不太擅長)。最簡單的方法來繪製一個NSImage昏暗(如殘疾的看法)

Non-dimmed Dimmed

我實際調光的圖標相同的用例如Xcode的調光像上面的圖標(即,文檔有未保存的變化)。

回答

16

也能正常工作對我來說:

NSImage *iconImage = [NSImage imageNamed:@"Icon"]; 
NSSize iconSize = [iconImage size]; 
NSRect iconRect = NSMakeRect(0.0, 0.0, iconSize.width, iconSize.height); 
[iconImage lockFocus]; 
[[NSColor colorWithCalibratedWhite:0.0 alpha:0.33] set]; 
NSRectFillUsingOperation(iconRect, NSCompositeSourceAtop); 
[iconImage unlockFocus]; 
[iconImage drawInRect:iconRect 
       fromRect:iconRect 
      operation:NSCompositeSourceOver 
       fraction:0.75]; 

基本上我實際的圖標(NSCompositeSourceAtop掩蓋它)的頂部添加33%不透明黑色層。然後我只是繪製了75%的不透明度的變暗圖標。

[編輯:得到了使用NSRectFillUsingOperation(...)暫時擺脫黑色圖像,通過尼古拉汝河的建議]

+0

誰downvoted你是有點苛刻。這確實有用。請誰能降低評分,請做好體面的事情,並對原因進行評論? :) – d11wtq 2010-11-25 13:00:36