2010-11-25 58 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