我想用 colored颜色 参考对图像进行着色.结果看起来应该类似于Photoshop中的倍增混合模式,其中whites将替换为tint:
我将不断更改 colored颜色 值.
Follow up:我会将执行此操作的代码放在ImageView的drawRect:方法中,对吗?
和往常一样,code snippet分对我的理解有很大帮助,而不是链接.
Update:使用建议的代码Ramin将UIImageView子类化.
我把它放在我的视图控制器的viewDidLoad:中:
[self.lena setImage:[UIImage imageNamed:kImageName]];
[self.lena setOverlayColor:[UIColor blueColor]];
[super viewDidLoad];
我看到了这张照片,但没有着色.我还try 加载其他图像,在IB中设置图像,并在我的视图控制器中调用setNeedsDisplay:.
Update:drawRect:未被调用.
Final update:我发现了一个老项目,它有一个正确设置的imageView,这样我就可以测试Ramin的代码,它工作起来非常棒!
Final, final update:个
对于那些刚刚学习Core Graphics的人来说,这里有一个可能可行的最简单的方法.
在您的子类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
}