1. 程式人生 > >iOS開發技巧之:圖片壓縮成指定的大小

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