是否可以更改图像的颜色?

Posted

技术标签:

【中文标题】是否可以更改图像的颜色?【英文标题】:Is it possible to change the color of the image? 【发布时间】:2012-07-09 07:01:15 【问题描述】:

不知道是不是很傻,

我有一张图片将添加到UIImageViewUIButton。该图像包含一些红色的文本,背景是黑色的。是否可以将 BG 颜色和文本颜色更改为自定义颜色。这可能吗??

【问题讨论】:

您是否正在寻找 [this link][1] 中的那个? [1]:***.com/questions/1117211/… 它就像一个色调。它实际上并没有改变颜色吗? 【参考方案1】:

如果在考虑 George 的回答后,您仍需要修改颜色,您可以尝试使用 Core Image 滤镜。

以下示例将名为screenImageUIImageView 的色调调整为angle 中给定的角度。

- (void)rebuildFilterChain:(double)angle 
  UIImage *uiImage = [UIImage imageNamed:@"background.jpg"];
  CIImage *image = [CIImage imageWithCGImage:[uiImage CGImage]];

  CIFilter *hueAdjust = [CIFilter filterWithName:@"CIHueAdjust"];
  [hueAdjust setDefaults];
  [hueAdjust setValue:image forKey: @"inputImage"];
  [hueAdjust setValue: [NSNumber numberWithFloat:angle] forKey: @"inputAngle"];
  self.resultImage = [hueAdjust valueForKey: @"outputImage"];

  CGImageRef cgImage = [context createCGImage:resultImage fromRect:resultImage.extent];
  screenImage.image = [UIImage imageWithCGImage:cgImage];
  CGImageRelease(cgImage);

Core Image 过滤器的完整列表是on the Apple site。

【讨论】:

【参考方案2】:

你为什么使用图片?如果您有背景颜色,则意味着您使用的是纯色……实际上不是图像。因此,您可以设置按钮的背景颜色以及标题颜色。如果您这样做只是为了获得圆角,请不要这样做。 只需import <QuartzCore/QuartzCore.h> 并这样做:

button.layer.cornerRadius = 8;

button.layer.masksToBounds = TRUE;

希望这会有所帮助。

干杯!

【讨论】:

谢谢。实际上,我有一张由高度为 50 的文本(如闪烁)组成的图像。而且我不知道他们使用的是哪种字体。看起来很时髦。该文本颜色为红色。我在想,是否可以更改该图像中的特定文本颜色。那是在 UIImageView 中的地方。

以上是关于是否可以更改图像的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

更改 SKSpriteNode 图像的颜色?

在悬停时更改图像颜色而无需更改图像

更改 img src SVG 颜色 [重复]

CSS 过滤器作为一个图像的颜色修饰符

更改图像颜色 [重复]

选中时更改按钮文本颜色