1. 出現的問題:
在Pillow中的PIL.Image.save()方法中,使用默認參數保存jpg圖片的過程中發現圖片被壓縮的很嚴重,導致原來很大的圖片變成幾十KB。但是有些時候往往需要圖片的大小不能變化太大或不能太小。
2. 問題原因:
這是因為在保存為jpg的過程中,PIL.Image.save()方法內部使用壓縮算法對圖片進行的壓縮處理。
3. 解決方法
在保存的時候,加上一些參數。
form PIL import Image
img = Image.open("xxx.jpg")
img.save(img_name, quality=95)
1
2
3
quality參數: 保存圖像的質量,值的范圍從1(最差)到95(最佳)。 默認值為75,使用中應盡量避免高於95的值; 100會禁用部分JPEG壓縮算法,並導致大文件圖像質量幾乎沒有任何增益。
使用此參數后,圖片大小會增加。如果圖片的大小還不能滿足你的需求,是否還有其他方式去增加圖片大小呢?
通過查閱資料並嘗試,發現save方法還有一個可以配合quality使用的參數,能夠大大增加圖片大小:
img.save(new_name, quality=95, subsampling=0) # 可能的子采樣值是0,1和2
1
subsampling參數:子采樣,通過實現色度信息的分辨率低於亮度信息來對圖像進行編碼的實踐。
注意: 以上方法的參數只針對於保存為JPG/JPEG格式的圖片的情況,在項目實踐過程中,樓主只使用了quality參數就滿足了要求,后面的subsampling參數未使用。以上僅供參考。
————————————————
原文鏈接:https://blog.csdn.net/AugustMe/article/details/117118860