forked from mei/webp2gif
first commit
This commit is contained in:
commit
b7821eea69
34
main.py
Normal file
34
main.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import os
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
|
def convert_webp_to_gif(input_folder, output_folder):
|
||||||
|
"""
|
||||||
|
批量将指定文件夹内的webp图片转换为gif,并保存至另一文件夹。
|
||||||
|
|
||||||
|
:param input_folder: 存放webp图片的文件夹路径
|
||||||
|
:param output_folder: 转换后的gif图片存放的文件夹路径
|
||||||
|
"""
|
||||||
|
if not os.path.exists(output_folder):
|
||||||
|
os.makedirs(output_folder)
|
||||||
|
|
||||||
|
# 遍历输入文件夹中所有文件
|
||||||
|
for filename in os.listdir(input_folder):
|
||||||
|
if filename.endswith(".webp"):
|
||||||
|
webp_path = os.path.join(input_folder, filename)
|
||||||
|
gif_path = os.path.join(output_folder, filename[:-5] + ".gif") # 替换后缀名.webp为.gif
|
||||||
|
|
||||||
|
try:
|
||||||
|
with Image.open(webp_path) as im:
|
||||||
|
# 如果是动画WebP,则需要特殊处理每一帧并保存为GIF
|
||||||
|
if hasattr(im, 'is_animated') and im.is_animated:
|
||||||
|
im.save(gif_path, save_all=True)
|
||||||
|
else:
|
||||||
|
im.convert('RGB').save(gif_path, 'GIF')
|
||||||
|
print(f"{filename} 转换成功")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"{filename} 转换失败: {e}")
|
||||||
|
|
||||||
|
# 使用函数
|
||||||
|
input_dir = 'input' # 输入WebP文件目录
|
||||||
|
output_dir = 'output' # 输出GIF文件目录
|
||||||
|
convert_webp_to_gif(input_dir, output_dir)
|
Loading…
Reference in New Issue
Block a user