可以通过mallocing一个32位/像素的临时位图 ,然后使用for循环清除alpha组件,然后再使用 清除alpha组件,最后再次将其重新转换为NSImage。清除NSImage的alpha通道
我怀疑是可以使用巧妙的 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];
注:alpha通道设置为1可通过 使用具有NSCompositePlusLighter一个blackColor来完成。
清除Alpha通道的秘诀是什么?
Leibowitzn,是的,它看起来像这样会起作用。今天晚些时候将不得不尝试这个。 – neoneye 2009-10-14 05:59:36