IOS 圖片壓縮

上傳圖片前的圖片壓縮:函數

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,並可 根據本身的實際使用場景,設置壓縮係數,進一步下降圖片數據量大小.
spa

相關文章
相關標籤/搜索