可以通過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