cocoa - 在 NSRect 中绘制图像

标签 cocoa nsrect

我在 NSRect 中绘制图像时遇到困难,下面的代码在所需位置创建一个 NSRect 并放入图像。问题是图像是一个带有透明区域的圆形,并且这些区域被填充黑色,所以我没有一个圆圈,而是一个黑色的正方形,里面有圆圈 img...

- (void)drawRect:(NSRect)dirtyRect{

NSImage *bg = [NSImage imageNamed:@"citydot_c1.png"];
NSRect city = NSMakeRect(10, 10, 8, 8);
[bg drawInRect:city fromRect:NSZeroRect operation:NSCompositeSourceAtop fraction:1.0f];

NSFrameRect(city);
}

所以基本上,我需要一种方法来删除 NSRect 的背景颜色,我认为......

有人有什么想法吗?

最佳答案

您可能想使用 Porter-Duff“Over”来构图:

[bg drawInRect:city fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];

使用此混合操作,您可以获得正常的透明度合成。

关于cocoa - 在 NSRect 中绘制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13039263/

相关文章:

objective-c - 获取 NSView 屏幕矩形和显示 ID

objective-c - 没有上下文的 NSRectFill 会导致调试警告

cocoa - NSRect 的副本不显示

macos - Cocoa 中的同级 NSView z 排序

swift - 调整大小后的图像周围有白色边框

iphone - 显示模态视图

cocoa - 使用 NSApplicationDelegate 时无法使 Apple 的 SimpleScripting 示例正常工作

cocoa - 使用drawRect方法绘图 - Cocoa

xcode - 按下按钮后为 DrawRect 设置NeedsDisplay

xcode - 如何在 Xcode 5 产品首选项编辑器中访问 Assets 目录中的图像(用于文档图标)