Это может быть сделано путем неправильного размещения временной битовой карты с 32 битами на пиксель
а затем очистить альфа-компонент с помощью цикла и
и, наконец, снова превратить его в NSImage.
Я подозреваю, что это может быть сделано более простым способом, используя умный
комбинация NSColor и NSCompositingOperation . Или возможно изображение
необходимо скомпоновать с самим собой, используя drawAtPoint.
Мой код выглядит следующим образом.
NSImage* img = some image with RGB and Alpha;
NSRect rect = some rect inside the image;
[img lockFocus];
[[NSColor clearColor] set];
NSRectFillUsingOperation(rect, NSCompositeXOR);
[img unlockFocus];
ПРИМЕЧАНИЕ. Установить альфа-канал на 1 можно с помощью
используя черный цвет с NSCompositePlusLighter.
В чем секрет очистки альфа-канала?