圆形图片(头像)
-
UIGraphicsBeginImageContext(CGSize size)
或者UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
准备绘图环境 -
CGContextRef con =UIGraphicsGetCurrentContext();
获取上下文 -
UIGraphicsGetImageFromCurrentImageContext();
从当前上下文获取图片 -
UIGraphicsEndImageContext();
关闭绘图环境
要点:绘制并截取一个指定大小的圆,然后把图片绘制上去,得到新的Image
- (UIImage*)imageClip:(UIImage*)image {
CGSize size = image.size;
CGRect bounds = CGRectMake(0, 0, size.width, size.height);
//开启指定大小的上下文
UIGraphicsBeginImageContext(size);
CGContextRef con =UIGraphicsGetCurrentContext();
//绘制一个圆
CGContextAddEllipseInRect(con, bounds);
//剪切
CGContextClip(con);
//把图片画上去
//(1)
[image drawInRect:bounds];
//(2) 或者这样写
// CGContextDrawImage(con, CGRectMake(0, 0, size.width, size.height), _image.CGImage);
//获取画上去之后的图片
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
//关闭图片上下文
UIGraphicsEndImageContext();
return newImage;
}
将图片尺寸等比例缩小/指定尺寸
(UIImage *) scaleImage:(UIImage *)image toScale:(float)scaleSize {
UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, image.size.height * scaleSize));
[image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height * scaleSize)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaledImage;
}
- (UIImage *) scaleImage:(UIImage *)image toSize:(CGSize)Size {
UIGraphicsBeginImageContext(CGSizeMake(Size.width, Size.height));
[image drawInRect:CGRectMake(0, 0, Size.width, Size.height)];
UIImage *sizeImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return sizeImage;
}
网友评论