Python的Pillow库,真的特别特别的强大,特别是自己的业务范围是设计领域的,下面我们写了一个压缩图片的代码实现:
from PIL import Image
import os
def compress_image(infile, outfile, quality):
"""
:param infile: 原始图像
:param outfile: 压缩后的图像
:param quality: 压缩质量
"""
try:
with Image.open(infile) as im:
im.save(outfile, optimize=True, quality=quality)
return True
except Exception as e:
print(e)
return False
def compress_all_images_in_directory(indir, outdir, quality):
"""
:param indir: 输入目录
:param outdir: 输出目录
:param quality: 压缩质量
"""
if not os.path.exists(outdir):
os.makedirs(outdir)
files = os.listdir(indir)
for file in files:
infile = os.path.join(indir, file)
outfile = os.path.join(outdir, file)
compress_image(infile, outfile, quality)
if __name__ == '__main__':
indir = 'input_directory'
outdir = 'output_directory'
quality = 50 # 0-100, 压缩质量越低,图像越小,但质量也会降低
compress_all_images_in_directory(indir, outdir, quality)
要使用此代码,请将indir和outdir替换为输入和输出目录的路径,并将quality设置为0-100之间的压缩质量,其中100表示最高质量,0表示最低质量。运行代码后,将会压缩indir中的所有图像并将其保存到outdir中。