我想用石英制作单色图像不同的颜色(I want to use Quartz to make a si

2019-10-30 21:48发布

我敢肯定,计算器上存在这个答案,但我一直在寻找,并一直没能找到它。 从本质上讲,我有几个图像与透明的背景和一些黑色的图像,我希望能够以黑色部分的颜色更改为其他一些任意的颜色。

我是比较相信这是可以实现的石英图片遮罩 ,但我一直没能找到任何很好的例子,所以这就是我要找的。 其他解决方案也欢迎。

谢谢!!!

更新:我觉得我很接近,此代码...但我的面具是行不通的。 我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);

Answer 1:

答案已经在上面的问题。 这不是很努力,因为我创造了IB的图像(故事板),并没有设置背景颜色。 不知怎的,即默认为黑色。 这么折腾!

反正以后我改变了背景颜色为透明的,下面的代码工作就像一个魅力!

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);


文章来源: I want to use Quartz to make a single color image a different color