美文网首页
UIImage图片换颜色

UIImage图片换颜色

作者: ray_1942 | 来源:发表于2017-08-04 08:47 被阅读0次

    有时候我们需要同一张图片在不同情况下显示不同的颜色,让UI出图费时费力,自己出图自己又懒(别和我比懒,我懒得和你比),所以还是用代码解决吧😊
    Swift版

    //MARK: 改变图片颜色
    extension UIImage{
        /// 更改图片颜色
        public func maskImageWithColor(color : UIColor) -> UIImage{
            UIGraphicsBeginImageContext(self.size)
            color.setFill()
            let bounds = CGRect.init(x: 0, y: 0, width: self.size.width, height: self.size.height)
            UIRectFill(bounds)
            self.draw(in: bounds, blendMode: CGBlendMode.destinationIn, alpha: 1.0)
            let tintedImage = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            return tintedImage!
        }
    }
    

    OC版

    - (UIImage *) maskImageWithColor:(UIColor *)color
    {
        NSParameterAssert(color != nil);
        
        CGRect imageRect = CGRectMake(0.0f, 0.0f, self.size.width, self.size.height);
        UIImage *newImage = nil;
        
        UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, self.scale);
        {
            CGContextRef context = UIGraphicsGetCurrentContext();
            
            CGContextScaleCTM(context, 1.0f, -1.0f);
            CGContextTranslateCTM(context, 0.0f, -(imageRect.size.height));
            
            CGContextClipToMask(context, imageRect, self.CGImage);
            CGContextSetFillColorWithColor(context, color.CGColor);
            CGContextFillRect(context, imageRect);
            
            newImage = UIGraphicsGetImageFromCurrentImageContext();
        }
        UIGraphicsEndImageContext();
        
        return newImage;
    }
    

    相关文章

      网友评论

          本文标题:UIImage图片换颜色

          本文链接:https://www.haomeiwen.com/subject/dwtvlxtx.html