iOS 根据屏幕宽高等比压缩图片 不失真

来源:互联网 发布:布朗肖 知乎 编辑:程序博客网 时间:2024/04/28 00:46

上次发布了将图片等比压缩到指定尺寸(http://blog.csdn.net/txz_gray/article/details/52312636),但是如果原图太宽或太高,压缩实际上是截取了中间的一部分,并不能保存全图。

这次是根据屏幕尺寸来压缩图片,可等比保存全图。代码如下:

/**  *  上传原图  *  *  @param image 传过来的图片  *  *  @return 返回的图片  */  - (UIImage*)imageCompressWithSimple:(UIImage*)image{      CGSize size = image.size;      CGFloat scale = 1.0;      //TODO:KScreenWidth屏幕宽      if (size.width > KScreenWidth || size.height > KScreenHeight) {          if (size.width > size.height) {              scale = KScreenWidth / size.width;          }else {              scale = KScreenHeight / size.height;          }      }      CGFloat width = size.width;      CGFloat height = size.height;      CGFloat scaledWidth = width * scale;      CGFloat scaledHeight = height * scale;      CGSize secSize =CGSizeMake(scaledWidth, scaledHeight);      //TODO:设置新图片的宽高      UIGraphicsBeginImageContext(secSize); // this will crop      [image drawInRect:CGRectMake(0,0,scaledWidth,scaledHeight)];      UIImage* newImage= UIGraphicsGetImageFromCurrentImageContext();      UIGraphicsEndImageContext();      return newImage;  }  
这里的上传原图只是在相册图片的基础上再次压缩,但是图片不会失真。

原文链接:http://blog.csdn.net/haitao0692/article/details/51211489

0 0