Pillow 讀寫圖像

2021-07-06 11:24 更新

python圖像庫(kù)支持各種各樣的圖像文件格式。要從磁盤讀取文件,請(qǐng)使用在 ?Image?模塊 ?的open()? 功能。打開文件不需要知道文件格式。庫(kù)根據(jù)文件的內(nèi)容自動(dòng)確定格式。

要保存文件,請(qǐng)使用類? Image?的?save()?方法。保存文件時(shí),名稱變得很重要。除非指定格式,否則庫(kù)將使用文件擴(kuò)展名來(lái)發(fā)現(xiàn)要使用的文件存儲(chǔ)格式。

將文件轉(zhuǎn)換為JPEG

import os, sys
from PIL import Image

for infile in sys.argv[1:]:
    f, e = os.path.splitext(infile)
    outfile = f + ".jpg"
    if infile != outfile:
        try:
            with Image.open(infile) as im:
                im.save(outfile)
        except OSError:
            print("cannot convert", infile)

第二個(gè)參數(shù)可以提供給? save() ?方法,該方法顯式指定文件格式。如果使用非標(biāo)準(zhǔn)擴(kuò)展名,則必須始終按以下方式指定格式:

創(chuàng)建JPEG縮略圖

import os, sys
from PIL import Image

size = (128, 128)

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            with Image.open(infile) as im:
                im.thumbnail(size)
                im.save(outfile, "JPEG")
        except OSError:
            print("cannot create thumbnail for", infile)

需要注意的是,除非確實(shí)需要,否則庫(kù)不會(huì)解碼或加載柵格數(shù)據(jù)。打開文件時(shí),將讀取文件頭以確定文件格式,并提取解碼文件所需的模式、大小和其他屬性等內(nèi)容,但稍后才會(huì)處理其余文件。

這意味著打開圖像文件是一個(gè)快速的操作,與文件大小和壓縮類型無(wú)關(guān)。下面是一個(gè)快速識(shí)別一組圖像文件的簡(jiǎn)單腳本:

識(shí)別圖像文件

import sys
from PIL import Image

for infile in sys.argv[1:]:
    try:
        with Image.open(infile) as im:
            print(infile, im.format, f"{im.size}x{im.mode}")
    except OSError:
        pass


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)