gpt4 book ai didi

objective-c - 为图像添加色调

转载 作者:可可西里 更新时间:2023-11-01 04:27:43 25 4
gpt4 key购买 nike

我正在创建一个应用程序,它使用 UIImagePickerController 向用户展示一个带有自定义覆盖层的相机,其中包括相机“ View ”本身上的两个网格/图案之一。

网格本身是添加到叠加层的 UIImageView 中的 .png 文件,它们非常复杂,所以我真的很想避免在代码中绘制网格,即使那样会为我的问题提供简洁明了的答案。

我希望能够提供多种颜色的网格。显而易见的解决方案是创建更多不同颜色的 .png 图像,但对于每种颜色,必须有四个单独的图像(每个网格的常规图像和视网膜图像),这样很快就会增加很多 Assets 。

我认为最理想的解决方案是只创建白色/灰色的网格,然后对其应用色调以适本地着色。

这可能吗?还是我需要寻求替代解决方案?

最佳答案

感谢 Ananth 指点我 iPhone - How do you color an image?

我已按照问题中的建议将此方法添加到我的代码中,并在 willc2 的答案中进行了修改:

-(UIImage *)colorizeImage:(UIImage *)baseImage color:(UIColor *)theColor {
UIGraphicsBeginImageContext(baseImage.size);

CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect area = CGRectMake(0, 0, baseImage.size.width, baseImage.size.height);

CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -area.size.height);
CGContextSaveGState(ctx);
CGContextClipToMask(ctx, area, baseImage.CGImage);
[theColor set];
CGContextFillRect(ctx, area);
CGContextRestoreGState(ctx);
CGContextSetBlendMode(ctx, kCGBlendModeMultiply);
CGContextDrawImage(ctx, area, baseImage.CGImage);
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}

...我得到了我想要的。

关于objective-c - 为图像添加色调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11241363/

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