1. 程式人生 > >關於nsdata的壓縮的問題base64,圖片轉字串,圖片的壓縮的問題

關於nsdata的壓縮的問題base64,圖片轉字串,圖片的壓縮的問題

我的之前是大小不變直接是UIImageJPEGRepresentation(self.uploadImage , 1.0f);

然後改成UIImageJPEGRepresentation(self.uploadImage , 0.4);就行了,主要就是你的圖片壓縮成為頭像的大小的話得壓縮的更多一些。

http://www.xuebuyuan.com/2189875.html

這篇文章介紹的就是圖片轉成nsstring的壓縮的問題,

NSData *imageData = UIImageJPEGRepresentation(self.uploadImage , 0.75);
//圖片按0.75的質量壓縮-》轉換為NSData

NSString *file_name = [TimeUtil getDateStringWithFormat:@"yyyy-MM-dd-HH-mm-ss"];
//以事件為圖片名字

NSString *upload_name =[NSString stringWithFormat:@"%@.jpg",file_name ];
//上傳的圖片名字
 
 
[request setData:imageData
    withFileName:upload_name
  andContentType:@"image/jpeg" 
          forKey:
@"upload_file"];

UIImageJPEGRepresentation 函式需要兩個引數:圖片的引用和壓縮係數.
而UIImagePNGRepresentation只需要圖片引用作為引數.通過在實際使用過程中,

比較發 現:
UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的圖片資料量大很多.
譬如,同樣是讀取攝像頭拍攝的同樣景色的照片
 UIImagePNGRepresentation()返回的資料量大小為199K
 而 UIImageJPEGRepresentation(UIImage* image, 1.0)返回的資料量大小隻為140KB
比前者少了50多KB.

如果對圖片的清晰度要求不高,還可以通過設定 UIImageJPEGRepresentation函式的第二個引數,大幅度降低圖片資料量.
譬如,剛才拍攝的圖片, 通過呼叫UIImageJPEGRepresentation(UIImage* image, 1.0)讀取資料時,返回的資料大小為140KB
但更改壓縮係數後,通過呼叫UIImageJPEGRepresentation(UIImage* image, 0.5)讀取資料時,返回的資料大小隻有11KB多,大大壓縮了圖片的資料量

 而且從視角角度看,圖片的質量並沒有明顯的降低.因此,在讀取圖片資料內容時,建議優先使用UIImageJPEGRepresentation,並可 根據自己的實際使用場景,設定壓縮係數,進一步降低圖片資料量大小.