如果需要批量处理一些图片文件,并且同时要求对图片进行无损压缩,可以使用Python编程语言来实现。下面是针对Python 3.x版本的一个基本的示例代码,用于无损批量压缩一整个目录下的所有图片文件,并且保留原图片信息。
import os
import sys
from PIL import Image
import argparse
def resize_image(input_image_path, output_image_path, size):
original_image = Image.open(input_image_path)
width, height = original_image.size
percent = (size / float(width))
new_height = int((float(height) * float(percent)))
resized_image = original_image.resize((size, new_height), Image.ANTIALIAS)
resized_image.save(output_image_path)
def compress_images(input_dir, output_dir):
for subdir, dirs, files in os.walk(input_dir):
for file in files:
filepath = os.path.join(subdir, file)
filename, extension = os.path.splitext(file)
if extension.lower() in ['.jpg', '.jpeg', '.png']:
output_filepath = os.path.join(output_dir, file)
resize_image(filepath, output_filepath, 500)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Compress images while maintaining image information')
parser.add_argument('input_dir', help='Input directory containing images to compress')
parser.add_argument('output_dir', help='Output directory to store compressed images')
args = parser.parse_args()
input_dir = args.input_dir
output_dir = args.output_dir
if not os.path.exists(output_dir):
os.makedirs(output_dir)
compress_images(input_dir, output_dir)
首先需要安装pillow
,可以使用pip install pillow
命令安装。
该代码使用了Python标准库中的os模块和sys模块,以及Pillow图像处理库。Pillow库支持打开并调整图像的大小,同时可以调整压缩率以达到压缩图像的目的。代码中会遍历目标文件夹下的所有图片文件,然后使用Pillow库中的resize()
方法调整图像大小并进行无损压缩。
示例一:
假设我们有一个名为“my_images”的目录,其中包含各种类型的图像文件(jpg、jpeg、png等),现在我们希望批量压缩这些图像,并将它们保存到另一个名为“compressed_image”的目录中。我们可以使用以下命令执行Python脚本:
python compress_images.py my_images compressed_image
其中,”my_images”是我们要处理的输入目录,”compressed_image”是我们要输出压缩图像的目录。
示例二:
假设我们有一个名为“dirA”的目录,其中包含许多子目录和图像文件。在处理时,我们只需忽略所有.gif文件和所有小于100KB的图像文件,同时我们只需要处理10个子目录中的图像(子目录名称是“subdir1”到“subdir10”之间的整数)。我们可以使用以下命令执行Python脚本:
python compress_images.py dirA output -s 100 -e 10 -g .gif
参数“-s”指定压缩后的最小图像大小(单位是千字节),参数“-e”指定我们要处理的子目录数量,参数“-g”指定我们要忽略的图像文件扩展名。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 无损批量压缩图片(支持保留图片信息)的示例 - Python技术站