开发中经常碰到这样婶的情况:一张带alpha通道的图片,有时在某个UI中需要显示成黑色,但在另外一个UI钟要显示白色。
有美工还强点,用ps调一下色OK,但是浪费时间啊。
其实这种小问题,咱自己就能解决。
分享一个改变图片主题色调的方法:
- (UIImage *) imageWithTintColor:(UIColor *)tintColor
{
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);
[tintColor setFill];
CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height);
UIRectFill(bounds);
[self drawInRect:bounds blendMode:kCGBlendModeDestinationIn alpha:1.0f];
UIImage *tintedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return tintedImage;
}
你只需将这段代码复制到UIImage的扩展方法中即可。
当然我们也可以写成对象方法:
- (UIImage *)changeImage:(UIImage *)img ToColor:(UIColor *)tintColor
{
UIGraphicsBeginImageContextWithOptions(img.size