在做项目的时候碰到了一个需求,就是设计做的图片的颜色和需求不符合,需要把图片的颜色改变一下。下面是改变图片颜色的方法。
首先我们创建一个UIImage的Category,名为ChangeColor。这个名为ChangeColor的Category只有一个方法,即-(UIImage*)imageChangeColor:(UIColor*)color
。这个方法的具体实现如下:
#import "UIImage+ChangeColor.h"@implementation UIImage (ChangeColor)//绘图-(UIImage*)imageChangeColor:(UIColor*)color
{ //获取画布
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f); //画笔沾取颜色
[color setFill];
CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height); UIRectFill(bounds); //绘制一次
[self drawInRect:bounds blendMode:kCGBlendModeOverlay alpha:1.0f]; //再绘制一次
[self drawInRect:bounds blendMode:kCGBlendModeDestinationIn alpha:1.0f]; //获取图片
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img;
}@end
使用方法:
首先我们看一下不改变颜色时,真实的图片颜色
UIImage *image = [UIImage imageNamed:@"qr-code"];UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[imageView setFrame:CGRectMake(100, 100, 100, 100)];
[self.view addSubview:imageView];
得到的图片:
原图.png
然后我们改变图片的颜色为绿色:
UIImage *image = [UIImage imageNamed:@"qr-code"];UIImageView *imageView = [[UIImageView alloc] initWithImage:[image imageChangeColor:[UIColor blueColor]]];
[imageView setFrame:CGRectMake(100, 100, 100, 100)];
[self.view addSubview:imageView];
运行结果:
改变颜色.png
作者:雪山飞狐_91ae
链接:https://www.jianshu.com/p/10047407463c
本公众号转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系本公众号进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】。文章内容为作者独立观点,不代表本公众号立场。版权归原作者所有,如申请授权请联系作者,因文章侵权本公众号不承担任何法律及连带责任。
---END---