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

时间:2012-07-09 07:01:15

标签: ios cocoa uiimageview uiimage uicolor

我不知道这听起来有点傻,

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

2 个答案:

答案 0 :(得分:3)

如果在考虑了George的答案之后,您仍然需要修改颜色,可以尝试使用Core Image过滤器。

以下示例将UIImageView的名为screenImage的色调调整为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);
}

核心图像过滤器的完整列表是on the Apple site

答案 1 :(得分:1)

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

button.layer.cornerRadius = 8;

button.layer.masksToBounds = TRUE;

希望这有帮助。

干杯!