我在 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/