最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Pillow Image.save 保存為jpg圖片壓縮問題

 更新時(shí)間:2021年11月23日 11:47:36   作者:翱翔的賴克  
Pillow 庫支持多種圖片格式,Pillow 能夠很輕松地實(shí)現(xiàn)圖片格式之間的轉(zhuǎn)換。本文就來詳細(xì)的介紹一下Image.save的具體使用,感興趣的可以了解一下

Pillow圖片格式轉(zhuǎn)換

Pillow 庫支持多種圖片格式,您可以直接使用 open() 方法來讀取圖片,并且無須考慮圖片是何種類型。Pillow 能夠很輕松地實(shí)現(xiàn)圖片格式之間的轉(zhuǎn)換。

圖片格式之間的轉(zhuǎn)換主要有以下兩種方法,下面分別對它們進(jìn)行了介紹:

save()

顧名思義,save() 方法用于保存圖像,當(dāng)不指定文件格式時(shí),它會以默認(rèn)的圖片格式來存儲;如果指定圖片格式,則會以指定的格式存儲圖片。save() 的語法格式如下:

Image.save(fp, format=None)

參數(shù)說明如下:

  • fp:圖片的存儲路徑,包含圖片的名稱,字符串格式;
  • format:可選參數(shù),可以指定圖片的格式。

示例如下:

from PIL import Image
im = Image.open("C:/Users/Administrator/Desktop/c-net.png")
im.save('C:/Users/Administrator/Desktop/c.biancheng.net.bmp')

此時(shí)您的計(jì)算機(jī)桌面上會存在一個(gè) c.bianchneg.net.BMP格式的圖片。

convert()+save()

注意,并非所有的圖片格式都可以用 save() 方法轉(zhuǎn)換完成,比如將 PNG 格式的圖片保存為 JPG 格式,如果直接使用 save() 方法就會出現(xiàn)以下錯(cuò)誤:

from PIL import Image
im = Image.open("C:/Users/Administrator/Desktop/c-net.png")
im.save('C:/Users/Administrator/Desktop/c.biancheng.net.jpg')

錯(cuò)誤信息如下所示:

#系統(tǒng)錯(cuò)誤,RGBA不能作為JPEG圖片的模式

OSError: cannot write mode RGBA as JPEG

引發(fā)錯(cuò)誤的原因是由于 PNG 和 JPG 圖像模式不一致導(dǎo)致的。其中 PNG 是四通道 RGBA 模式,即紅色、綠色、藍(lán)色、Alpha 透明色;JPG 是三通道 RGB 模式。因此要想實(shí)現(xiàn)圖片格式的轉(zhuǎn)換,就要將 PNG 轉(zhuǎn)變?yōu)槿ǖ?RGB 模式。

Image 類提供的 convert() 方法可以實(shí)現(xiàn)圖像模式的轉(zhuǎn)換。該函數(shù)提供了多個(gè)參數(shù),比如 mode、matrix、dither 等,其中最關(guān)鍵的參數(shù)是 mode,其余參數(shù)無須關(guān)心。語法格式如下:

convert(mode,parms**)
  • mode:指的是要轉(zhuǎn)換成的圖像模式;
  • params:其他可選參數(shù)。

修改后的代碼如下所示:

from PIL import Image
im = Image.open("C:/Users/Administrator/Desktop/c-net.png")
#此時(shí)返回一個(gè)新的image對象,轉(zhuǎn)換圖片模式
image=im.convert('RGB')
#調(diào)用save()保存
image.save('C:/Users/Administrator/Desktop/c.biancheng.net.jpg')

通過以上代碼,成功將 PNG 格式的圖片轉(zhuǎn)換為了 JPG 格式。?

Pillow Image.save 保存為jpg圖片壓縮

在使用Pillow中的Image.save()方法,使用默認(rèn)參數(shù)保存jpg圖片的過程中發(fā)現(xiàn)圖片被壓縮的很嚴(yán)重,導(dǎo)致原來很大的大小變成幾十K。這是因?yàn)樵诒4鏋閖pg的過程中,內(nèi)部使用壓縮算法對圖片進(jìn)行的壓縮處理。

但是有些時(shí)候往往需要圖片的大小不能變化太大或不能太小。所以在使用此方式時(shí)可以加入?yún)?shù):

imObj.save(img_name, quality=95)

quality參數(shù): 保存圖像的質(zhì)量,值的范圍從1(最差)到95(最佳)。 默認(rèn)值為75,使用中應(yīng)盡量避免高于95的值; 100會禁用部分JPEG壓縮算法,并導(dǎo)致大文件圖像質(zhì)量幾乎沒有任何增益。

使用此參數(shù)后,圖片大小會增加。如果圖片的大小還不能滿足你的需求,是否還有其他方式去增加圖片大小呢?

通過查閱資料并嘗試,發(fā)現(xiàn)save方法還有一個(gè)可以配合quality使用的參數(shù),能夠大大增加圖片大?。?/p>

imObj.save(new_name, quality=95, subsampling=0)

subsampling參數(shù):子采樣,通過實(shí)現(xiàn)色度信息的分辨率低于亮度信息來對圖像進(jìn)行編碼的實(shí)踐。 (參考:https://en.wikipedia.org/wiki/Chroma_subsampling

可能的子采樣值是0,1和2,對應(yīng)于4:4:4,4:2:2和4:1:1(或4:2:0?)。

經(jīng)過實(shí)踐將值設(shè)為0便可以滿足圖片大小增大的需求。

注意: 以上方法的參數(shù)只針對于保存為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

到此這篇關(guān)于 Python Pillow Image.save 保存為jpg圖片壓縮問題的文章就介紹到這了,更多相關(guān)Pillow Image.save 保存為jpg內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!?

相關(guān)文章

  • Python 使用指定的網(wǎng)卡發(fā)送HTTP請求的實(shí)例

    Python 使用指定的網(wǎng)卡發(fā)送HTTP請求的實(shí)例

    今天小編就為大家分享一篇Python 使用指定的網(wǎng)卡發(fā)送HTTP請求的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python快速實(shí)現(xiàn)簡易貪吃蛇小游戲的示例代碼

    Python快速實(shí)現(xiàn)簡易貪吃蛇小游戲的示例代碼

    貪吃蛇(也叫做貪食蛇)游戲是一款休閑益智類游戲,有PC和手機(jī)等多平臺版本。既簡單又耐玩。本文將利用Python語言快速實(shí)現(xiàn)簡易貪吃蛇小游戲,感興趣的可以嘗試一下
    2022-10-10
  • Python的加密模塊之hashlib 與 base64詳解及常用加密方法

    Python的加密模塊之hashlib 與 base64詳解及常用加密方法

    我們來學(xué)習(xí)一下 Python 中的加密模塊,加密模塊在工作中被廣泛應(yīng)用,比如數(shù)據(jù)的傳入 不希望被捕獲,通過把數(shù)據(jù)加密。這樣即使被捕獲也無法獲取到數(shù)據(jù)的真實(shí)信息,今天我們就來學(xué)習(xí)一下關(guān)于加密的方法,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • 封裝Detours用于Python中x64函數(shù)hook詳解

    封裝Detours用于Python中x64函數(shù)hook詳解

    Detours是微軟發(fā)布的一個(gè)API hook框架,同時(shí)支持x86和x64,看文檔說也支持ARM和ARM64的Windows,這篇文章主要介紹了封裝Detours用于Python中x64函數(shù)hook,需要的朋友可以參考下
    2023-12-12
  • django queryset相加和篩選教程

    django queryset相加和篩選教程

    這篇文章主要介紹了django queryset相加和篩選教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python如何安裝mysql數(shù)據(jù)庫模塊

    Python如何安裝mysql數(shù)據(jù)庫模塊

    這篇文章主要介紹了Python如何安裝mysql數(shù)據(jù)庫模塊問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 簡單介紹Python虛擬環(huán)境及使用方法

    簡單介紹Python虛擬環(huán)境及使用方法

    Python的虛擬環(huán)境極大地方便了人們的生活.本文介紹了虛擬環(huán)境的基礎(chǔ)知識以及使用方法,文中有非常詳細(xì)的說明,需要的朋友可以參考下
    2021-06-06
  • python動(dòng)態(tài)性強(qiáng)類型用法實(shí)例

    python動(dòng)態(tài)性強(qiáng)類型用法實(shí)例

    這篇文章主要介紹了python動(dòng)態(tài)性強(qiáng)類型用法,對比C#實(shí)例分析了python動(dòng)態(tài)性強(qiáng)類型的使用方法,需要的朋友可以參考下
    2015-05-05
  • Python的for和break循環(huán)結(jié)構(gòu)中使用else語句的技巧

    Python的for和break循環(huán)結(jié)構(gòu)中使用else語句的技巧

    平時(shí)我們把在if結(jié)構(gòu)中使用else語句當(dāng)作理所當(dāng)然,然而,Python強(qiáng)大的語法糖可以讓else語句在for和while循環(huán)中使用!下面我們就通過例子來看一下Python的for和break循環(huán)結(jié)構(gòu)中使用else語句的技巧
    2016-05-05
  • Python創(chuàng)建自己的加密貨幣的示例

    Python創(chuàng)建自己的加密貨幣的示例

    這篇文章主要介紹了Python創(chuàng)建自己的加密貨幣的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03

最新評論

巴林左旗| 会东县| 秭归县| 工布江达县| 东乡县| 威远县| 河北区| 高阳县| 寿阳县| 娄烦县| 吕梁市| 建德市| 无棣县| 太湖县| 合山市| 安福县| 青田县| 安平县| 峨山| 皮山县| 牙克石市| 阿坝| 板桥市| 油尖旺区| 正蓝旗| 永福县| 吉安县| 昆山市| 扶风县| 镇江市| 长沙县| 海门市| 双牌县| 饶河县| 称多县| 五指山市| 肇州县| 新邵县| 双江| 蓬莱市| 特克斯县|