关于图片的重绘,从而进行压缩
//重新画图像
-(NSData *)drawPicture:(UIImage *)image
{
// 加载图片
// UIImage *image = [UIImage imageNamed:@"小黄人"];
// 1.开启上下文
// size:位图上下文,一般根图片一样大
// opaque:不透明度,只要跟上下文相关的都是叫不透明度,根view相关的叫透明度
// opaque:YES 不透明 NO: 透明,一般都是使用透明的上下文
// scale: 0 表示不需要缩放
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.1);
// 2.画图片
[image drawAtPoint:CGPointZero];
// 4.把上下文中的内容生成一张图片,从上下文中获取图片
image = UIGraphicsGetImageFromCurrentImageContext();
// 5.关闭上下文
UIGraphicsEndImageContext();
// 把图片转换成二进制数据
NSData *data = UIImagePNGRepresentation(image);
// 写入桌面
return data;
}
对比与直接用
UIImageJPEGRepresentation(<#UIImage * _Nonnull image#>, <#CGFloat compressionQuality#>)
进行压缩。第一种方法的优势是不会使图片变形,只是像素变小,等比例压缩