在使用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