PIL.Image.save() 保存圖片壓縮問題


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM