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

2022-08-29 10:55 更新

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

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


save()

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

Image.save(fp, format=None)

參數(shù)說明如下:

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

示例如下:

from PIL import Image
im = Image.open("./w3cschool.png")
im.save('../w3cschool.bmp')

此時您的計算機桌面上會存在一個 w3cschool.BMP格式的圖片。


convert()+save()

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

from PIL import Image
im = Image.open("./w3cschool.png")
im.save('./w3cschool.jpg')

錯誤信息如下所示:

#系統(tǒng)錯誤,RGBA不能作為JPEG圖片的模式
OSError: cannot write mode RGBA as JPEG

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


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

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

修改后的代碼如下所示:

from PIL import Image
im = Image.open("./w3cschool.png")
#此時返回一個新的image對象,轉(zhuǎn)換圖片模式
image=im.convert('RGB')
#調(diào)用save()保存
image.save('./w3cschool.jpg')

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


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號