gpt4 book ai didi

ios - 如何创建要在运行时着色的模板图像

转载 作者:可可西里 更新时间:2023-11-01 03:05:59 27 4
gpt4 key购买 nike

我有一个几乎是纯色的图像。它已连接,但纯白色,因此您无法轻易看到。

Sample image我希望能够在运行时动态地为该图像着色,但我需要在 iOS 6 中执行此操作而不使用 UIImageRenderingModeAlwaysTemplate。

所有图片都将以纯白色开始,并带有圆角的微小渐变。

到目前为止,我最好的尝试是使用 GPUImage 和 UIImage 上的类别

@implementation UIImage (BPAdditions)

- (UIImage *)imageWithColor:(UIColor *)color
{

GPUImageRGBFilter *stillImageFilter = [[GPUImageRGBFilter alloc] init];
CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha =0.0;
[color getRed:&red green:&green blue:&blue alpha:&alpha];
stillImageFilter.red = red;
stillImageFilter.green = green;
stillImageFilter.blue = blue;
GPUImageChromaKeyFilter *stillImageFilter2 = [[GPUImageChromaKeyFilter alloc] init];
[stillImageFilter2 setColorToReplaceRed:0 green:0 blue:0];
stillImageFilter2.thresholdSensitivity = 0.2;
stillImageFilter2.smoothing = 0;
UIImage *img = [stillImageFilter imageByFilteringImage:self];

return [stillImageFilter2 imageByFilteringImage: img];
}

这将是理想的,除非当我使用 RGB 滤镜时它会将清晰的背景变成黑色。然后根据使用的颜色使用色度过滤器去除它会产生不同的质量。

目标颜色有可能是黑色,在这种情况下,此解决方案将完全失败。

最佳答案

不确定我是否理解您想要实现的目标,但您是否想为基本图像添加简单的色调?如果是这样,您可以在 UIImage 上使用以下类别来实现此目的:

- (UIImage *)tintWithColor:(UIColor *)tintColor {
UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]);
CGRect drawRect = CGRectMake(0, 0, self.size.width, self.size.height);
[self drawInRect:drawRect];
[tintColor set];
UIRectFillUsingBlendMode(drawRect, kCGBlendModeSourceAtop);
UIImage *tintedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return tintedImage;
}

-- 更新:Swift 2 版本 --

extension UIImage {

func tintWithColor(color:UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.size, false, UIScreen.mainScreen().scale)

let rect = CGRectMake(0, 0, self.size.width, self.size.height)
self.drawInRect(rect)
color.setFill()
UIRectFillUsingBlendMode(rect, CGBlendMode.SourceAtop)

let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}

}

关于ios - 如何创建要在运行时着色的模板图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18872732/

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