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