iOS开发-绘制iOS 开发每天分享优质文章iOS技术点

iOS改变图片的颜色

2018-05-30  本文已影响37人  雪山飞狐_91ae

在做项目的时候碰到了一个需求,就是设计做的图片的颜色和需求不符合,需要把图片的颜色改变一下。下面是改变图片颜色的方法。
首先我们创建一个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
上一篇下一篇

猜你喜欢

热点阅读