关于图片的重绘,从而进行压缩

//重新画图像

-(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#>)

 进行压缩。第一种方法的优势是不会使图片变形,只是像素变小,等比例压缩

原文地址:https://www.cnblogs.com/handsomeBoys/p/5083188.html