利用UIImageJPEGRepresentation與UIGraphicsBeginImageContext進行圖片壓縮的簡單比較


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,並可 根據自己的實際使用場景,設置壓縮系數,進一步降低圖片數據量大小


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM