1. 程式人生 > >UIImage修改圖片顏色

UIImage修改圖片顏色

首先,我們放個正常的圖片.這個圖片應該是從百度地圖sdk裡取得

-(void)build
{
    self.view.backgroundColor = [UIColor blackColor];
    MyButton *button = [[MyButton alloc] initWithFrame:CGRectMake(55, 55, 100, 50)];
    [button setTitle:@"測試" forState:UIControlStateNormal];
    UIImage *buttonImage = [UIImage imageNamed:@"dizhi"];
    
    [button setImage:buttonImage forState:UIControlStateNormal];
    [self.view addSubview:button];
}


改變圖片顏色程式碼

//
//  UIImage+Developer.m
//  Test
//
//  Created by XuTianyu on 16/3/3.
//  Copyright © 2016年 lakala. All rights reserved.
//

#import "UIImage+Developer.h"

@implementation UIImage (Developer)
/**
 *  重新繪製圖片
 *
 *  @param color 填充色
 *
 *  @return UIImage
 */
- (UIImage *)imageWithColor:(UIColor *)color
{
    UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(context, 0, self.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);
    CGContextSetBlendMode(context, kCGBlendModeNormal);
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
    CGContextClipToMask(context, rect, self.CGImage);
    [color setFill];
    CGContextFillRect(context, rect);
    UIImage*newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}
@end

剛才設定button圖片的話改成
[button setImage:[buttonImage imageWithColor:[UIColor blueColor]]forState:UIControlStateNormal];

執行看效果