iOS开发技巧之:图片压缩成指定的大小

iOS中,我们为了节省内存,需要对图片来进行处理,来优化程序,提高程序的效率,下面是一个根据自己的要求来重新设置图片的大小:

一、压缩图片有两种方式,第一种是压缩图片的大小,重新生成图片的尺寸:如下

[html] view plain  copy
 print ?
  1. /**  
  2.  *  压缩图片到指定尺寸大小  
  3.  *  
  4.  *  @param image 原始图片  
  5.  *  @param size  目标大小  
  6.  *  
  7.  *  @return 生成图片  
  8.  */  
  9. -(UIImage *)compressOriginalImage:(UIImage *)image toSize:(CGSize)size{  
  10.     UIImage * resultImage = image;  
  11.     UIGraphicsBeginImageContext(size);  
  12.     [resultImage drawInRect:CGRectMake(00, 0, size.width, size.height)];  
  13.     UIGraphicsEndImageContext();  
  14.     return image;  
  15. }  

二、第二种是修改图片的文件大小:如下

[html] view plain  copy
 print ?
  1. /**  
  2.  *  压缩图片到指定文件大小  
  3.  *  
  4.  *  @param image 目标图片  
  5.  *  @param size  目标大小(最大值)  
  6.  *  
  7.  *  @return 返回的图片文件  
  8.  */  
  9. - (NSData *)compressOriginalImage:(UIImage *)image toMaxDataSizeKBytes:(CGFloat)size{  
  10.     NSData * data = UIImageJPEGRepresentation(image, 1.0);  
  11.     CGFloat dataKBytes = data.length/1000.0;  
  12.     CGFloat maxQuality = 0.9f;  
  13.     CGFloat lastData = dataKBytes;  
  14.     while (dataKBytes > size && maxQuality > 0.01f) {  
  15.         maxQuality = maxQuality - 0.01f;  
  16.         data = UIImageJPEGRepresentation(image, maxQuality);  
  17.         dataKBytes = data.length / 1000.0;  
  18.         if (lastData == dataKBytes) {  
  19.             break;  
  20.         }else{  
  21.             lastData = dataKBytes;  
  22.         }  
  23.     }  
  24.     return data;  
  25. }  

这是压缩图片的两种方式。


[html] view plain  copy
 print ?
  1.   





原文链接:http://blog.csdn.net/dkq972958298/article/details/52750741


猜你喜欢

转载自blog.csdn.net/vkooy/article/details/77638072