3

NSRect で画像を描画するのに問題があります。以下のコードは、目的の位置に NSRect を作成し、画像を配置します。問題は、画像が透明な領域を持つ円であり、これらが黒で塗りつぶされることです。円の代わりに、円の画像が入った黒い四角があります...

- (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 の背景色を削除する方法が必要だと思います...

誰でもアイデアはありますか?

4

1 に答える 1

3

Porter-Duff の "Over" を使用して画像を構成することをお勧めします。

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

このブレンド操作を使用すると、通常の透明度の構成が得られます。

于 2012-10-23T21:14:44.043 に答える