现在的位置: 首页 > 综合 > 正文

Quartz常用方法整理

2013年10月05日 ⁄ 综合 ⁄ 共 1383字 ⁄ 字号 评论关闭
文章目录

生成获得一个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的尺寸来绘制的

抱歉!评论已关闭.