gpt4 book ai didi

objective-c - 绘制变暗的 NSImage 的最简单方法(如禁用 View )

转载 作者:太空狗 更新时间:2023-10-30 03:47:26 24 4
gpt4 key购买 nike

如果我对暗淡图像的确切色调等不是很挑剔,是否有一种快速而肮脏的方法来绘制稍微暗淡的 NSImage,就像这样?我在网上搜索过,并没有真正找到我要找的东西(但在理解图形和正确的技术术语方面我不是很好)。

Non-dimmed Dimmed

我实际上正在为与上述 Xcode 调光图标相同的用例调暗图标(即文档有未保存的更改)。

最佳答案

这对我来说很好:

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];

基本上,我在实际图标的顶部添加了一个不透明度为 33% 的黑色图层(使用 NSCompositeSourceAtop 对其进行遮盖)。然后我只绘制不透明度为 75% 的变暗图标。

[编辑:根据 Nikolai Ruhe 的建议,使用 NSRectFillUsingOperation(...) 摆脱了临时黑色图像]

关于objective-c - 绘制变暗的 NSImage 的最简单方法(如禁用 View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com