美文网首页
[iOS]给图片绘制渲染色

[iOS]给图片绘制渲染色

作者: PlutoMa | 来源:发表于2016-04-23 17:59 被阅读1411次

    我们有时候需要给图片上绘制一层渲染色,虽然可以在控件上添加一层视图,但是这种做法效率很低,不如直接把图片绘制为带有渲染色的图片来得好
    代码:

        func tintedImageWithColor(color: UIColor, originalityImage: UIImage!) -> UIImage {
            //创建图片位置大小
            let imageRect = CGRect(x: 0.0, y: 0.0, width: originalityImage.size.width, height: originalityImage.size.height)
            
            //设置绘制图片上下文
            UIGraphicsBeginImageContextWithOptions(imageRect.size, false, originalityImage.scale)
            //得到上下文
            let context = UIGraphicsGetCurrentContext()
            //绘制图片
            originalityImage.drawInRect(imageRect)
            //设置渲染颜色
            CGContextSetFillColorWithColor(context, color.CGColor)
            //设置透明度(值可根据需求更改)
            CGContextSetAlpha(context, 0.5)
            //设置混合模式
            CGContextSetBlendMode(context, CGBlendMode.SourceAtop)
            //设置位置大小
            CGContextFillRect(context, imageRect)
            
            //绘制图片
            let imageRef = CGBitmapContextCreateImage(context)
            let darkImage = UIImage(CGImage: imageRef!, scale: originalityImage.scale, orientation: originalityImage.imageOrientation)
            
            //完成绘制
            UIGraphicsEndImageContext()
            return darkImage
        }
    

    来使用一下吧

            let imageView = UIImageView(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
            view.addSubview(imageView)
            
            let image = UIImage(named: "crab.JPG")
            imageView.image = image
    

    原图如下:

    Simulator Screen Shot 2016年4月23日 下午5.55.15.png

    设置图片渲染色后:

    var image = UIImage(named: "crab.JPG")
            image = tintedImageWithColor(UIColor.greenColor(), originalityImage: image)
            imageView.image = image
    

    效果如下:

    Simulator Screen Shot 2016年4月23日 下午5.59.06.png

    相关文章

      网友评论

          本文标题:[iOS]给图片绘制渲染色

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