為什麼Android的圖片質量會比iPhone的差?這個原因正確嗎

為什麼Android的圖片質量會比iPhone的差?


因為android中使用的libjpeg中的參數optimize_coding寫錯了,這個值應該是true,android上面一直為false,這個會導致壓縮的圖片的質量變差!詳細的介紹看這裡:為什麼Android的圖片質量會比iPhone的差?肉眼可識別,沒有試過的人就不要回復了


關於這個問題,正好前段時間對於android和iOS的jpeg壓縮有點研究,android的jpeg庫壓出來的圖片與你設置的jpeg係數是一樣的,而iOS壓出來的圖片的jpeg係數是大於等於你設置的係數的。

紅色的是一條斜率為1的直線,與android以及其他標註libjpeg是一樣的,藍色的是iOS的線。可以看到基本上iOS的實際jpeg值是遠大於你設置的jpeg係數的。

android系統上設置jpeg參數範圍是0-100,iOS是0-1.0,android的jpeg參數與libjpeg參數是一致的,iOS的係數*100 &<= libjpeg quality。

如何查看一張jpeg圖片的jpeg係數:

安裝ImageMagick後,執行腳本:identify -verbose yourimage.jpg | grep -i quality

ImageMagick: Command-line Tools: Identify

總之,不是iOS有多牛,而是iOS產生的圖片文件更大,更大文件尺寸的圖片具有更好的質量理所應當。


色影無忌論壇一直都有這麼一句話:重要的是相機後面的那個頭,而不是相機前面的那個頭。

你不妨仔細體會一下。

另外,關於 jpeg 壓縮演算法中是否使用優化,你使用 photoshop 保存的時候有選項的,每個人都可以親自測試一下。

我只能告訴你我的看法:jpeg 壓縮時是否啟用優化參數,兩者的像質差別用肉眼根本無法識別。原文中所謂 5-10 被差距完全就是個噱頭。這麼不負責任的博客,敢發到知乎上來不?


自己測試NativeUtil.compressBitmap和bmp.compress都是60壓縮質量,發現結果是一樣大小的,放大也是一模一樣的......


對於jpg來說,如果想要好的質量和更快的壓縮速度,請選擇libjpeg-turbo,使用jni編譯成android庫。我估計微信本地壓縮也是這麼做的。


私猜因為apple拍攝的圖片壓縮程度小,所以最終成像效果會好很多。IP6拍全景一張6M,早先的安卓少有產生超過4M的圖片,如果是拍視頻的話,文件大小可能超過5:1,無論是尺寸還是數據密度都是遙遙領先。再加上CPU普遍要強一些…另外IP色差小是公認的


推薦閱讀:

為什麼高清電影的音頻都使用dts而不用體積只有一半的杜比ac3?
現有網線未來十年左右會否淘汰?現在裝修有沒有必要布光纖?
為什麼 130 萬像素的攝像頭可以拍攝 720P 的視頻?
高清信號直播節目會成為傳統電視抗衡互聯網電視的有利條件嗎,或者說兩者在這方面存在合作互惠的機會嗎?
高清完整版的電影是真是假?

TAG:iPhone | Android手機 | 高清 | 相冊 | 圖片壓縮 |