可可 - 在NSRect中绘制图像

时间:2012-10-23 21:07:40

标签: 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的背景颜色,我认为......

有人有任何想法吗?

1 个答案:

答案 0 :(得分:3)

您可能想要使用Porter-Duff" Over"来构建图像:

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

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