Python Pillow (PIL) Image.save 保存为jpg图片压缩问题
在使用Pillow中的Image.save()方法,使用默認參數保存jpg圖片的過程中發現圖片被壓縮的很嚴重,導致原來很大的大小變成幾十K。這是因為在保存為jpg的過程中,內部使用壓縮算法對圖片進行的壓縮處理。
但是有些時候往往需要圖片的大小不能變化太大或不能太小。所以在使用此方式時可以加入參數:
imObj.save(img_name, quality=95)
quality參數: 保存圖像的質量,值的范圍從1(最差)到95(最佳)。 默認值為75,使用中應盡量避免高于95的值; 100會禁用部分JPEG壓縮算法,并導致大文件圖像質量幾乎沒有任何增益。
使用此參數后,圖片大小會增加。如果圖片的大小還不能滿足你的需求,是否還有其他方式去增加圖片大小呢?
通過查閱資料并嘗試,發現save方法還有一個可以配合quality使用的參數,能夠大大增加圖片大小:
imObj.save(new_name, quality=95, subsampling=0)
subsampling參數:子采樣,通過實現色度信息的分辨率低于亮度信息來對圖像進行編碼的實踐。 (參考:https://en.wikipedia.org/wiki/Chroma_subsampling)
可能的子采樣值是0,1和2,對應于4:4:4,4:2:2和4:1:1(或4:2:0?)。
經過實踐將值設為0便可以滿足圖片大小增大的需求。
注意: 以上方法的參數只針對于保存為JPG/JPEG格式的圖片的情況。
參考文檔:https://pillow.readthedocs.io/en/5.1.x/handbook/image-file-formats.html#jpeg
參考文檔:https://pillow.readthedocs.io/en/4.0.x/PIL.html
總結
以上是生活随笔為你收集整理的Python Pillow (PIL) Image.save 保存为jpg图片压缩问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5 个好用且免费的在线代码编辑器
- 下一篇: 如何压缩图片jpg格式?一分钟学会jpg