我想用颜色参考着色的图像。结果应该看起来像 Photoshop 中的倍增混合模式,其中 白色的将被取代为 色彩:
我将不断改变颜色值。
接下来: 我将把这个代码放在我的 ImageView 的 draRect: 方法中,对吗?
像往常一样,代码片段将大大有助于我的理解,而不是链接。
更新: 使用建议的代码 拉明对 UIImageView 进行子类化。
我把它放在 viewDidLoad: 的 view 控制器中:
[self.lena setImage:[UIImage imageNamed:kImageName]];
[self.lena setOverlayColor:[UIColor blueColor]];
[super viewDidLoad];
我看到了图像,但是没有被染色。我还尝试加载其他图像,在 IB 中设置图像,并在视图控制器中调用 setNeedsDisplay: 。
更新 : draRect: 未被调用。
最后更新: 我发现一个老项目,有一个 image 视图设置正确,所以我可以测试拉明的代码,它的工作就像一个魅力!
最后,最后更新:
对于那些刚刚学习核心图形的人来说,这是最简单的可能工作的东西。
在您的子类 UIView 中:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColor(context, CGColorGetComponents([UIColor colorWithRed:0.5 green:0.5 blue:0 alpha:1].CGColor)); // don't make color too saturated
CGContextFillRect(context, rect); // draw base
[[UIImage imageNamed:@"someImage.png"] drawInRect: rect blendMode:kCGBlendModeOverlay alpha:1.0]; // draw image
}