0
我確定這個答案存在於stackoverflow上,但我一直在尋找並且一直未能找到它。從本質上講,我有幾個透明背景圖像和一些黑色圖像,我希望能夠將黑色部分的顏色更改爲其他任意顏色。我想使用Quartz來製作一個不同顏色的單色圖像
我相對肯定這是可以實現的Quartz Image Masking,但我一直沒有找到任何好的例子,所以這就是我要找的。其他解決方案也很受歡迎。
謝謝!
更新:我覺得我很接近這個代碼...但我的面具不工作。儘管我的UIView
填充了填充顏色,但它只是一個巨大的矩形,沒有任何限制。
更新#2:我現在更接近(我認爲)與下面的代碼。問題是我的背景現在是黑色的,而不是透明的。
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextScaleCTM(context, 1, -1);
CGContextTranslateCTM(context, 0, -rect.size.height);
CGImageRef maskImage = [self.image CGImage];
CGContextClipToMask(context, rect, maskImage);
[_colorToChangeInto setFill];
CGContextFillRect(context, rect);
如果您在填充前剪切會發生什麼?剪輯僅影響您之後完成的繪圖。 –
同樣的效果。只是一個填充顏色的大框。 – livingtech
嗯。如果我擺脫了colorSpace BS,並直接使用圖像作爲蒙版,我得到的圖像接近我想要的,但背景是黑色的,而不是透明的。 (我需要翻轉座標,我可以通過CGContextScaleCTM(mainViewContentContext,1,-1); CGContextTranslateCTM(mainViewContentContext,0,-rect.size.height);'。)來解決這個問題。 ://stackoverflow.com/a/8351807/18961 – livingtech