Какао - нарисовать изображение в NSRect

У меня возникают трудности при рисовании изображения в 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, я думаю...

У кого-нибудь есть идеи?

1 ответ

Решение

Вы, вероятно, хотите составить изображение, используя Porter-Duff "Over":

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

Используя эту операцию наложения, вы получите нормальную прозрачность композиции.

Другие вопросы по тегам