温馨提示
图片上下文的绘制不需要在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实际用法
图片裁剪
- 裁剪圆形图片-Demo
/**
剪裁圆形图片
@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;
}
网友评论