2012-10-23 97 views
3

我在繪製NSRect中的圖像時遇到困難,下面的代碼在所需的位置創建NSRect並放置圖像。問題是圖像是一個帶有透明地區和這些得到黑色填充,因此不是一個圈子我有在它圓IMG一個黑色方形...cocoa - 在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的背景顏色,我認爲...

任何人有任何想法?

回答

3

你可能想使用組合波特 - 達夫「在」圖像:

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

使用這種混合操作你得到正常的透明度組成。

+0

我試過了,但那也不管用? –

+0

我其實是一個正在繪製的邊框,它使圖像看起來像背景是黑色的,在那裏可以擺脫邊框嗎? –

+0

那麼,你明確地繪製了一個邊框:'NSFrameRect(city);' –