更改 UIImage 基色,保持白色

Posted

技术标签:

【中文标题】更改 UIImage 基色,保持白色【英文标题】:Change UIImage base color, keep white 【发布时间】:2015-02-05 21:46:56 【问题描述】:

我试图使用here 概述的方法来更改用于 UIView 的 UIImage 的颜色。我希望这种方法会忽略空格,但事实并非如此。

这是我想用蓝色替换红色的原始图像。

这里是代码

UIImage *image = [UIImage imageNamed:@"star-badge"];
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

UIImageView *imageView = [[UIImageView alloc] initWithFrame:...];
imageView.tintColor = [UIColor blueColor];
imageView.image = image;
[self.view addSubview:imageView];

但这就是结果

有没有办法忽略空白或只改变红色?

【问题讨论】:

更改原始图像,使中间透明而不是白色,那么您使用的方法应该可以工作。如果需要,将其显示在白色背景上。 【参考方案1】:

更改原始图像,使中间透明而不是白色,那么您使用的方法应该可以工作。如果需要,将其显示在白色背景上。

【讨论】:

谢谢,会试试的。出于好奇,如果星星必须是黑色或白色以外的其他颜色怎么办?在这种情况下您必须添加背景? 是的,处理它的最简单方法是使用较小的背景(因此它不会显示在圆形颜色后面),无论您希望星星是什么颜色。 另外,有一些想法here 用于更改图像中的特定颜色。您也可以使用较新的CoreImage Here 在CoreImage 文档中讨论了颜色键控,这基本上是您想要做的。【参考方案2】:

正如大卫所说,你需要一个透明的星星,附上图片应该如何以防万一你无法在 photoshop 上处理它

【讨论】:

以上是关于更改 UIImage 基色,保持白色的主要内容,如果未能解决你的问题,请参考以下文章

UIImage 的透明颜色为白色

Swift:旋转 UIImage 并填充它

UIImage 将原始像素从白色更改为清晰?

在swift 5中从UIImage中删除白色背景

如何仅为 UIImage 的非白色部分设置色调颜色?

如何从 SKSpriteNode 获取 UIImage