ios - Swift 函数代码求讲解每句的意思

查看:100
本文介绍了ios - Swift 函数代码求讲解每句的意思的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

func coloredImage(image: UIImage, red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) -> UIImage! {
    let rect = CGRect(origin: CGPointZero, size: image.size)
    UIGraphicsBeginImageContextWithOptions(image.size, false, image.scale)
    let context = UIGraphicsGetCurrentContext()
    image.drawInRect(rect)
    CGContextSetRGBFillColor(context, red, green, blue, alpha)
    CGContextSetBlendMode(context, CGBlendMode.SourceAtop)
    CGContextFillRect(context, rect)
    let result = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return result
}

主要是不太明白这些UI和CG函数的意思,求大神讲解下

解决方案


/**
 - parameter image: 参数,图片对象
 - parameter red:   RGB颜色 R
 - parameter green: RGB颜色 G
 - parameter blue:  RGB颜色 B
 - parameter alpha: 透明度
 
 - returns: 返回一个图片对象
 */
func coloredImage(image: UIImage, red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) -> UIImage! {
    //结构体:大小是 参数图片大小,位置是 零
    let rect = CGRect(origin: CGPointZero, size: image.size)
    //开启位图上下文,根据图片的大小,这个方法和后面的UIGraphicsEndImageContext呼应,一个开启一个关闭
    UIGraphicsBeginImageContextWithOptions(image.size, false, image.scale)
    //获取当前绘图上下文
    let context = UIGraphicsGetCurrentContext()
    //将图片渲染到该上下文中
    image.drawInRect(rect)
    //设置上下文的颜色为传进来参数的颜色,填充色
    CGContextSetRGBFillColor(context, red, green, blue, alpha)
    //设置组合模式,通过OverlayLighten... 几种模式自己试试吧!可以看到效果
    CGContextSetBlendMode(context, CGBlendMode.Overlay)
    //通过上下文context绘制一个矩形
    CGContextFillRect(context, rect)
    //从当前的上下文中获取图片对象
    let result = UIGraphicsGetImageFromCurrentImageContext()
    //关闭上下文
    UIGraphicsEndImageContext()
    //返回图片对象
    return result
}

//: 这是演示效果的demo,我是在playground中写的

let view = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
view.backgroundColor = UIColor.yellowColor()

var img = UIImage(named:"QQ20160227-0@2x.png")
img = coloredImage(img!, red: 0.0, green: 0.0, blue: 1.0, alpha: 1.0)

let imgView = UIImageView(image: img)

view.addSubview(imgView)


这篇关于ios - Swift 函数代码求讲解每句的意思的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆