Python批量压缩图片
最近需要批量压缩一批图片、这个时候首先想到的肯定是python能不能帮助我完成这个问题、搜索了一下网上的教程发现还真有,总结分享一下给大家、有不明白的地方可以留言沟通
import os
from PIL import Image
def compress_images(input_folder, output_folder, target_size):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for filename in os.listdir(input_folder):
if filename.endswith(".jpg") or filename.endswith(".png"):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, filename)
img = Image.open(input_path)
# 保持原尺寸
img.thumbnail((600, 338))
# 逐渐降低质量直到满足目标大小
img.save(output_path, optimize=True, quality=95)
while os.path.getsize(output_path) > target_size*1000:
img.save(output_path, optimize=True, quality=95)
print(f"Compressed {filename} to {os.path.getsize(output_path)//1000}KB")
input_folder = "images" # 输入文件夹路径
output_folder = "new_images" # 输出文件夹路径
target_size = 500 # 目标大小(KB)
compress_images(input_folder, output_folder, target_size)
压缩以前8.8G 、 压缩后不到600M效率还是比较高的