bitmap上下文--裁剪图片

来源:互联网 发布:alexa刷排名软件 编辑:程序博客网 时间:2024/06/06 01:56

制作一个带有边框的图片

- (void)viewDidLoad {    [super viewDidLoad];    // 制作一个带有边框的图片    // 获取图片    UIImage *image = [UIImage imageNamed:@"timg.jpg"];    CGFloat margin = 10;    CGFloat imageW = image.size.width;    CGFloat imageH = image.size.height;    CGFloat bitmapW = imageW + margin;    CGFloat bitmapH = imageH + margin;    // 创建bitmap上下文:该bitmap上下文要比图片的尺寸稍大点    UIGraphicsBeginImageContextWithOptions(CGSizeMake(bitmapW, bitmapW), NO, 0);    // 在bitmap中先绘制一个大圆,设置颜色    CGContextRef ctx = UIGraphicsGetCurrentContext();    CGFloat bigCircleX = bitmapW / 2.0;    CGFloat bigCircleY = bitmapH / 2.0;    CGFloat bigRadius = bitmapW / 2.0;    CGContextAddArc(ctx, bigCircleX, bigCircleY, bigRadius, 0, 2 * M_PI, 0);    [[UIColor whiteColor] set];    CGContextFillPath(ctx);    // 然后在bitmap绘制一个和图片一样尺寸的圆,将这个小圆指定为可用范围    CGFloat smallCircleX = bigCircleX;    CGFloat smallCircleY = bigCircleY;    CGFloat smallRadius = imageW / 2.0;    CGContextAddArc(ctx, smallCircleX, smallCircleY, smallRadius, 0, 2 * M_PI, 0);    CGContextClip(ctx); //指定可用范围    CGContextStrokePath(ctx);    // 绘制图片    CGFloat imageX = margin / 2.0;    CGFloat imageY = margin / 2.0;    [image drawAtPoint:CGPointMake(imageX, imageY)];    // 获取图片    UIImage *clipImage = UIGraphicsGetImageFromCurrentImageContext();    self.imageView.image = clipImage;    // 将图片写在文件中    // 注意:指定可用范围,可用范围的作用是在指定之后才起作用,也就是说在指定可用范围之前绘制的图形不受影响}
0 0