zer*_*ube 5 objective-c uiimageview uiimagepickercontroller ios
我正在创建一个应用程序,用于UIImagePickerController向用户呈现一个自定义覆盖图,其中包括摄像头"视图"本身上的两个网格/图案之一.
网格本身是一个.png文件,UIImageView它被添加到叠加层中,它们非常复杂,所以我真的想避免在代码中绘制网格,即使这样我会很好地回答我的问题.
我希望能够提供各种颜色的网格.显而易见的解决方案是以不同的颜色创建更多的.png图像,但是对于每种颜色,必须有四个单独的图像(每个网格的常规图像和视网膜图像),这样可以快速累加大量资产.
我认为,理想的解决方案是让我只需创建白色/灰色的网格,然后对其应用色调以对其进行适当的着色.
那可能吗?或者我是否需要寻求替代解决方案?
感谢Ananth指点我的iPhone - 你如何着色图像?
我已按照问题中的建议将此方法添加到我的代码中,并在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;
}
Run Code Online (Sandbox Code Playgroud)
......而且我正在得到我正在追求的东西.
| 归档时间: |
|
| 查看次数: |
2919 次 |
| 最近记录: |