bitmap上下文--裁剪图片

    xiaoxiao2021-04-15  64

    制作一个带有边框的图片

    - (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; // 将图片写在文件中 // 注意:指定可用范围,可用范围的作用是在指定之后才起作用,也就是说在指定可用范围之前绘制的图形不受影响 }
    转载请注明原文地址: https://ju.6miu.com/read-671035.html

    最新回复(0)