今天項目有個需求,要求限制圖片的大小之后再上傳到后臺辩撑,通過1個小時的仔細觀摩稚机,得出以下結論:
UIImage的兩種讀取圖片數據的方法:
1慷彤、UIImageJPEGRepresentation這個是讀取UIImage的JPEG格式的數據
2伦仍、UIImagePNGRepresentation.這個是讀取UIImage的PNG格式的數據
UIImageJPEGRepresentation的方法需要兩個參數:UIImage和壓縮系數.而UIImagePNGRepresentation只需要UIImage作為參數.
通過在親測過程中,比較了兩個方法發(fā)現: UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的圖片的大小要大很多.
例如:同樣的一張本地圖片照片, UIImagePNGRepresentation(UIImage) 返回的數據量大小為740KB ,
而 UIImageJPEGRepresentation(UIImage* image, 1.0)返回的數據量大小只為279KB
如果對圖片的清晰度要求不高,還可以通過設置 UIImageJPEGRepresentation的第二個參數,大幅度降低圖片的大小.剛才拍攝的圖片, 通過調用UIImageJPEGRepresentation(UIImage* image, 1.0)讀取數據時,返回的數據大小為279KB,但更改壓縮系數后,通過調用UIImageJPEGRepresentation(UIImage* image, 0.5)讀取數據時,返回的數據大小只有60KB(如上圖),大大壓縮了圖片的大小 ,而且從視角角度看,圖片的質量并沒有明顯的降低.因此,在讀取圖片數據內容時,建議優(yōu)先使用UIImageJPEGRepresentation,并可根據自己的實際使用場景,設置壓縮系數,進一步降低圖片的大小.
希望能幫助到大家结窘!喜歡的請點個贊,哪里寫的不好的充蓝,也請大家多多指點晦鞋!