python批量图片转webp格式
AI-摘要
切换
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
本文最后更新于 2024-04-27,文章内容可能已经过时。
前言
这段时间,想着把以后在博客网站上的图片都换成webp,压缩加,加载也能快一点。但是不知道有什么好的工具批量生成。
最后搜了一下,发现python是有库的,那就很简单了,接下来直接看代码。
正文
import os
from PIL import Image
def convert_images_to_webp(input_folder, output_folder, quality=80):
"""
Convert all non-WebP images in the input_folder to WebP format and save them to output_folder.
Existing WebP images are skipped.
Args:
- input_folder (str): The folder containing images to convert.
- output_folder (str): The folder where converted WebP images will be saved.
- quality (int): The quality of the converted WebP images, default is 80.
"""
# Check if output folder exists, if not, create it
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# Iterate over all files in the input folder
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif')):
# Construct the full file path
file_path = os.path.join(input_folder, filename)
# Open the image
image = Image.open(file_path)
# Convert and save the image in WebP format
webp_filename = os.path.splitext(filename)[0] + '.webp'
webp_path = os.path.join(output_folder, webp_filename)
image.save(webp_path, 'webp', quality=quality)
print(f"Saved {filename}")
elif filename.lower().endswith('.webp'):
webp_path = os.path.join(output_folder, filename)
with open(file_path, 'rb') as file:
with open(webp_path, 'wb') as output_file:
output_file.write(file.read())
print(f"Skipping existing WebP file: {filename}")
print(f"All non-WebP images from {input_folder} have been converted and saved to {output_folder}")
if __name__ == '__main__':
convert_images_to_webp('photos', 'photos/webp2')
Copy
注释都很清楚了,这里就说下重点。
主要流程就是将非webp的图片转换后丢到指定目录,已经是webp的就直接丢过去。
有三个参数,input_folder
, output_folder
, quality
input_folder
你要转换的图片文件夹
output_folder
转换后输出的路径
quality
图片压缩质量,默认80,一般也不用改。
要注意的是,权限要给够,不然可能复制失败。
效果如下:
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 马卡龙博客
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果