绘制UIImage

来源:互联网 发布:飞升化身诀数据 编辑:程序博客网 时间:2024/06/05 05:02
创建单一颜色的UIImage
+(UIImage*)createImageWithColor:(UIColor*) color{    CGRect rect          = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);    UIGraphicsBeginImageContext(rect.size);    CGContextRef context = UIGraphicsGetCurrentContext();    CGContextSetFillColorWithColor(context, [color CGColor]);    CGContextFillRect(context, rect);    UIImage *theImage    = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();    return theImage;}
创建特定形状的image :根据需要设置开始点坐标,连线形成特定图形,下面以气泡图为例
+ (UIImage *)bubbleImageWithColor:(UIColor *)color{    CGFloat wide = 100;    CGFloat height = 30;    UIGraphicsBeginImageContextWithOptions(CGSizeMake(wide, height), NO, 0);        CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();    CGContextRef context = UIGraphicsGetCurrentContext();        CGFloat radius = 6.0;       //// Bezier Drawing    UIBezierPath *bezierPath = [UIBezierPath bezierPath];    CGContextMoveToPoint(context, 10, height-10);    CGContextAddLineToPoint(context,0,height);    CGContextAddArcToPoint(context, wide-10, height, wide-10, 0, radius);//设置弧线的方法:三个点连线以radius为半径做切线    CGContextAddArcToPoint(context, wide-10, 0, 10, 0, radius);    CGContextAddArcToPoint(context, 10, 0, 10, height, radius);    [bezierPath closePath];    CGContextSaveGState(context);    [color setFill];    [bezierPath fill];        CGContextRestoreGState(context);            //// Cleanup    CGColorSpaceRelease(colorSpace);        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();        return image;}
效果图如下:




0 0