Quartz常用方法整理

生成获得一个Context

UIGraphicsGetCurrentContext:获得当前的context,通常使用在drawRect

UIGraphicsBeginImageContextWithOptions:生成一个bitmap context ,通过UIGraphicsGetCurrentContext获得上下文

CGBitmapContextCreate:  生成一个bitmap context


生成获得UIImage,CGImage

UIGraphicsGetImageFromCurrentImageContext 从当前context返回UIImage

CGBitmapContextCreateImage 从context返回CGImage

+(UIImage)imageWithCGImage:scale:orientation:通过CGImage返回UIImage


截取,mask,绘制图片

CGImageCreateWithImageInRect: 截图

CGImageCreateWithMask:创建mask显示

CGImageCreateWithMaskingColors: 用颜色范围来mask一张图片

CGContextClipToMask:根据mask来变换context

CGContextClipToRect/CGContextToMask + CGContextDrawImage + CGBitmapContextCreateImage 截取context位置,在context当中绘图,然后从context返回图片

[renderImageView.layer renderInContext:UIGraphicsGetCurrentContext()];//将layer和子layer绘制到当前context中


CGLayer绘制图片

    //画了一个五角星
    const CGPoint myStarPoints[] = {{ 5, 5},   {10, 15},// 五角星的path路径
        {10, 15},  {15, 5},
        {15, 5},   {2.5, 11},
        {2.5, 11}, {16.5, 11},
        {16.5, 11},{5, 5}};
        starField  =  CGRectMake (0, 102, 160, 119); // 绘制五角星的范围

    starLayer = CGLayerCreateWithContext (context,starField.size, NULL);// 基于指定的context生成CGLayer
    myLayerContext2 = CGLayerGetContext (starLayer);// 获得CGLayer关联的context,这个context和上面的context不一样,一个是绘制CGLayer的,一个是CGLayer最终绘制的位置
    CGContextSetRGBFillColor (myLayerContext2, 1.0, 1.0, 1.0, 1);// 设置颜色
    CGContextAddLines (myLayerContext2, myStarPoints, 10);// 划线
    CGContextFillPath (myLayerContext2);    // 根据path然后填充


绘图时候要注意坐标,比如UIImage的 drawAtPoint,这个坐标是left-top的坐标,并且是根据UIImage的尺寸来绘制的













评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值