轉自:
版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/u014220518/article/details/58136932
描述
圖片作爲App中重要的一個元素,非常具有表現力,圖片既要讓用戶能看清楚,又能讓發佈圖片的用戶能快速的上傳。所以開發者要對圖片進行裁切和質量壓縮。但是裁切尺寸質量壓縮比設置成多少卻很難控制好,如果設置不當會導致圖片顯示效果很差。
微信是一個很好的參照物,被大家廣爲使用並接受。這個擴展就是通過發送微信朋友圈和聊天會話發送了大量圖片,對比原圖與微信壓縮後的圖片逆向推算出來的壓縮算法。
算法
圖片尺寸
寬高均 <= 1280,圖片尺寸大小保持不變
寬或高 > 1280 && 寬高比 <= 2,取較大值等於1280,較小值等比例壓縮
寬或高 > 1280 && 寬高比 > 2 && 寬或高 < 1280,圖片尺寸大小保持不變
寬高均 > 1280 && 寬高比 > 2,取較小值等於1280,較大值等比例壓縮
注:當寬和高均小於1280,並且寬高比大於2時,微信聊天會話和微信朋友圈的處理不一樣。
朋友圈:取較小值等於1280,較大值等比例壓縮
聊天會話:取較小值等於800,較大值等比例壓縮
圖片質量
經過大量的測試,微信的圖片壓縮質量值 ≈ 0.5
UIImageJPEGRepresentation(resizeImage, 0.5)
效果對比
original wechat this
1500 * 4000, 2.5MB 800 * 2134, 325KB 800 * 2134, 306KB
960 * 600, 210KB 960 * 600, 147KB 960 * 600, 147KB
800 * 1280, 595KB 800 * 1280, 140KB 800 * 1280, 142KB
1080 * 1920, 1.8MB 720 * 1280, 139KB 720 * 1280, 140KB
640 * 1136, 505KB 640 * 1136, 68KB 640 * 1136 69KB
4000 * 3000, 497KB 1280 * 960, 140KB 1280 * 960, 139KB
2560 * 1600, 232KB 1280 * 800 112KB 1280 * 800, 112KB
800 * 2138, 307KB 800 * 2134, 649KB 800 * 2138, 599KB
3351 * 1430, 386KB 1874 * 800, 296KB 1875 * 800, 286KB
3000 *1300, 458KB 1846 * 800 322KB 1847 * 800, 307KB
8323 * 5793, 19.67MB 1280 * 890, 428KB 1280 * 891, 465KB