Pillow 读写图像
2021-07-06 11:24 更新
python图像库支持各种各样的图像文件格式。要从磁盘读取文件,请使用在 Image
模块 的open()
功能。打开文件不需要知道文件格式。库根据文件的内容自动确定格式。
要保存文件,请使用类 Image
的save()
方法。保存文件时,名称变得很重要。除非指定格式,否则库将使用文件扩展名来发现要使用的文件存储格式。
将文件转换为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)
第二个参数可以提供给 save()
方法,该方法显式指定文件格式。如果使用非标准扩展名,则必须始终按以下方式指定格式:
创建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)
需要注意的是,除非确实需要,否则库不会解码或加载栅格数据。打开文件时,将读取文件头以确定文件格式,并提取解码文件所需的模式、大小和其他属性等内容,但稍后才会处理其余文件。
这意味着打开图像文件是一个快速的操作,与文件大小和压缩类型无关。下面是一个快速识别一组图像文件的简单脚本:
识别图像文件
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
以上内容是否对您有帮助:
更多建议: