gpt4 book ai didi

iphone - 我想用 Quartz 将单色图像变成不同的颜色

转载 作者:行者123 更新时间:2023-11-29 04:12:47 26 4
gpt4 key购买 nike

我确信 stackoverflow 上存在这个问题的答案,但我一直在寻找,但尚未找到它。本质上,我有几个具有透明背景的图像和一些黑色图像,我希望能够将黑色部分的颜色更改为其他任意颜色。

我相对确定这可以通过 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);

最佳答案

答案已经在上面的问题中了。它不太有效,因为我是在 IB 中(在 Storyboard中)创建图像,并且没有设置背景颜色。不知怎的,默认为黑色。太令人沮丧了!!!

无论如何,在我将背景颜色更改为透明后,下面的代码就像魅力一样!

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

关于iphone - 我想用 Quartz 将单色图像变成不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14176569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com