美文网首页
Core Graphics

Core Graphics

作者: 吃面多放葱 | 来源:发表于2019-03-14 15:48 被阅读0次

    采用 Quartz 高级绘画引擎提供基于路径的绘制,形变,颜色管理,离屏渲染,渐变与阴影,图片数据管理,图片创建,图片蒙版,同样的PDF创建,显示和解析.

    几何数据类型

    CGFloat

    CGPoint

    CGSize

    CGRect

    CGVector

    CGAffineTransform

    2D 绘制

    CGContext

    常用API说明

    
    /*构建绘制路径*/
    //在图形环境中创建一个新的空路径
    func beginPath()
    //在指定点开始一个新的子路径
    func move(to: CGPoint)
    //从当前点添加一条直线到指定点
    func addLine(to: CGPoint)
    //根据数组内的点连线,其中数组里的第一个点作为线的初始起点
    func addLines(between: [CGPoint])
    //添加一个矩形路径
    func addRect(CGRect)
    //添加多个矩形路径
    func addRects([CGRect])
    //添加椭圆
    func addEllipse(in: CGRect)
    //添加圆
    func addArc(center: CGPoint, radius: CGFloat, startAngle: CGFloat, endAngle: CGFloat, clockwise: Bool)
    //三阶贝塞尔曲线
    func addCurve(to end: CGPoint, control1: CGPoint, control2: CGPoint)
    //二阶贝塞尔曲线
    func addQuadCurve(to end: CGPoint, control: CGPoint)
    //关闭当前的子路径
    func closePath()
    
    
    /*绘制当前路径*/
    //沿着当前路径绘制线
    func strokePath()
    
    /*绘制形状*/
    //透明
    func clear(CGRect)
    //使用填充色在当前的图形状态下填充指定区域
    func fill(CGRect)
    //填充多个区域
    func fill([CGRect])
    //填充区域内的椭圆形
    func fillEllipse(in: CGRect)
    //画指定区域的路径
    func stoke(CGRect)
    //画椭圆
    func stokeEllipse(in: CGRect)
    //画多条线段
    func stokeLineSegments(between: [CGPoint])
    
    /*画渐变和阴影*/
    //直线平滑过渡
    func drawLinearGradient(_ gradient: CGGradient, 
                      start startPoint: CGPoint, 
                        end endPoint: CGPoint, 
                    options: CGGradientDrawingOptions)
    
    //扇面渐变过渡
    func drawRadialGradient(_ gradient: CGGradient, 
                startCenter: CGPoint, 
                startRadius: CGFloat, 
                  endCenter: CGPoint, 
                  endRadius: CGFloat, 
                    options: CGGradientDrawingOptions)               
                
    /*绘制文字*/
    //文字绘制位置
    var textPosition: CGPoint
    //设置字符间距
    func setCharacterSpacing(CGFloat)
    //设置字体
    func setFont(CGFont)
    func setFontSize(CGFloat)
    func setTextDrawingMode(CGTextDrawingMode)
    
    /*设置填充,描画,和阴影颜色*/
    //填充色
    func setFillColor(CGColor)
    //阴影
    func setShadow(offset: CGSize, blur: CGFloat)  
    //描画线颜色
    func setStokeColor(CGColor)  
    //设置透明度
    func setAlpha(CGFloat)
    
    
    /*裁切路径*/   
    //裁切区域内指定矩形
    func clip(to: CGRect)
    //裁切区域内多个矩形
    func clip(to: [CGRect]) 
    //裁切区域内用图片填充
    func clip(to: CGRect, mask: CGImage)
    
    
    /*设置路径绘制选项*/
    //是否允许反锯齿
    func setAllowAntialiasing(Bool)
    //平滑度
    func setFlatness(CGFloat)
    //线帽
    func setLineCap(CGLineCap)
    //虚线
    func setLineDash(phase: CGFloat, lengths: [CGFloat])
    //线连接处样式
    func setLineJoin(CGLineJoin)
    //线宽
    func setLineWidth(CGFloat)
     
    /*保存上下文状态*/
    func saveGState()
    //保存最新的状态,需要之前保存过一次状态,否则会崩溃
    func restoreGState()
    
    
    /*管理图形上下文*/
    //强制立即绘制
    func flush()
    //标记窗口上下文需要更新
    func synchronize()
    
    /*管理位图*/
    //位图信息
    var bitmapInfo: CGBitmapInfo
    //像素高
    var height: Int
    //像素宽
    var width: Int
    //生成一个CGImage
    func makeImage() -> CGImage?
                   
    

    CGPath

    CGMutablePath

    CGLayer

    参考资料

    Core Graphics

    相关文章

      网友评论

          本文标题:Core Graphics

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