图片操作-UIGraphicsBeginImageContext

2019-07-25  本文已影响0人  加盐白咖啡

温馨提示

图片上下文的绘制不需要在drawRect:方法中进行,可以直接在OC方法中就可以绘制。

获取图片上下文

使用两个方法同样都可以创建,但是使用第一个方法将来创建的图片清晰度和质量没有第二种方法的好。

// 参数: 指定将来创建出来的bitmap的大小
UIGraphicsBeginImageContext(CGSize size);
/*
 * 参数一: 指定将来创建出来的bitmap的大小
 * 参数二: 设置透明YES代表不透明,NO代表透明
 * 参数三: 代表缩放,0代表不缩放
 */
UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);

圆形剪裁-当参数二:opaque = NO 时效果如下

image.png

圆形剪裁-当参数二:opaque = YES 时效果如下

image.png

实际用法

图片裁剪

 /**
 剪裁圆形图片
 @param image 图片对象
 @param rect  剪裁区域
 @return      剪裁完成的图片
 */
- (UIImage *)clipCircleImageWithImage:(UIImage *)image clipRect:(CGRect)rect {
    // 1.开启图片上下文 CGSize size 尺寸, BOOL opaque 透明度, CGFloat scale 比例
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
    // 2.设置剪裁区域
    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:rect];
    // 把圆形路径设为剪裁区域
    [path addClip];
    // 3.绘制图片上下文
    [image drawAtPoint:CGPointZero];
    // 4.获取新图片
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    // 5.关闭图片上下文
    UIGraphicsEndImageContext();
    
    return newImage;
}
上一篇 下一篇

猜你喜欢

热点阅读