iOS中兩種壓縮圖片的方法

這是官方的解釋:

UIImagePNGRepresentation(UIImage*__nonnullimage);// return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format]

UIImageJPEGRepresentation(UIImage*__nonnullimage,CGFloatcompressionQuality);//return image as JPEG. May return nil if image has no CGImageRef or invalid bitmap format. compression is 0(most)..1(least)

UIImageJPEGRepresentation方法需要兩個(gè)參數(shù):圖片的引用和壓縮系數(shù),而UIImagePNGRepresentation方法僅僅需要一個(gè)參數(shù):圖片的引用。UIImagePNGRepresentation方法在耗時(shí)上比UIImageJPEGRepresentation耗時(shí),圖片數(shù)據(jù)量更大,使用 UIImagePNGRepresentation讀取照片數(shù)據(jù)的時(shí)候有可能會(huì)照成卡頓。兩個(gè)方法返回的數(shù)據(jù)都是NSData類型。

例如:

同樣是讀取攝像頭拍攝的圖片,UIImagePNGRepresentation(UIImage *image)返回的數(shù)據(jù)量大小為199K,而UIImageJPEGRepresentation(UIImage *image,1.0)返回的數(shù)據(jù)量只有140K,比前者少了50多K;而且如果對(duì)圖片的質(zhì)量要求不那么高的話,還可以通過設(shè)置壓縮系數(shù)進(jìn)一步減少數(shù)據(jù)量,降低壓縮系數(shù)后UIImageJPEGRepresentation(UIImage *image, 0.5),返回的數(shù)據(jù)大小只有11K,大大壓縮了圖片數(shù)據(jù)量,而且從視圖角度看,圖片的質(zhì)量并沒有明顯降低。所以,在讀區(qū)圖片數(shù)據(jù)內(nèi)容的時(shí)候,建議優(yōu)先使用方法UIImageJPEGRepresentation(UIImage *image, CGFloatcompressionQuality)

代碼:
NSData *data = nil; if(!UIImagePNGRepresentation(image)) { data =UIImageJPEGRepresentation(image,0.1); }else{ data =UIImagePNGRepresentation(image); }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容