
背景说明:
本周三就是督导复验,汇报PPT还在优化中……

原来PPT一页插入多张图片,我都是用美图的GIF做


存在问题:

1、每次都要打开链接,全选所有图片,才能导入
2、导入后的照片背景大小,默认为全部导入照片中最高、最宽的图片尺寸,导致一些小一点的照片会出现难看的白边。
3、切换时间最多2秒,而做PPT,一般最少也要3秒一张图
4、图片尺寸最大2000像素(再大就模糊了)
5、保存后输入文件名称。选择路径保存

6、需要转移GIF图片时,必须关闭美图软件,才能调用GIF图片

之前我一直觉得美图GIF比人工做切换动画方便多了,但是可选参数太少。
不过因为制作次数不多,都是用美图GIF做了。它已经提高了不少效率。
实际需求:
这次督导汇报又是大量的照片,为了能够最大化呈现照片效果,就需要合并GIF。

这次我想问问deepseek,是否可以用Python快速做JPG图片的GIF动画效果。
第1种效果:每张图片切换3秒

结果是可行的。所以我把照片默认为3秒,快速做出了GIF图片
(以蝴蝶为例)
'''
汇报PPT,把JPG图片合并为动态GIF,间隔时间可设置
deepseek,阿夏
20250512
'''
from PIL import Image
import os
m = int(input('间隔几秒\n'))
def create_gif_from_images(folder_path, output_gif, target_size=(1024, 720)):
"""
将文件夹中的所有图片合并为GIF
参数:
folder_path: 包含图片的文件夹路径
output_gif: 输出的GIF文件名
target_size: 目标图片大小 (宽, 高)
"""
# 获取文件夹中所有图片文件(不含GIF图片)
image_files = []
for file in os.listdir(folder_path):
if file.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.jifi')):
image_files.append(os.path.join(folder_path, file))
if not image_files:
print("文件夹中没有找到图片文件!")
return
print(f"找到 {len(image_files)} 张图片")
# 打开所有图片并调整大小
images = []
for i, image_file in enumerate(image_files):
try:
img = Image.open(image_file)
# 直接拉伸到目标尺寸(不保持比例)
img = img.resize(target_size, Image.LANCZOS)
images.append(img)
except Exception as e:
print(f"无法处理文件 {image_file}: {e}")
if not images:
print("没有有效的图片可以处理!")
return
# 设置每帧的持续时间(毫秒)
durations = [m * 1000] * len(images) # 所有帧相同时间
# 保存为GIF
images[0].save(
output_gif,
save_all=True,
append_images=images[1:],
duration=durations,
loop=0, # 无限循环
quality=100, # 高质量
optimize=True # 优化GIF
)
print(f"GIF已成功保存为 {output_gif}")
# 使用示例
if __name__ == "__main__":
path = r'C:\Users\jg2yXRZ\OneDrive\桌面'
names = input('请输入文件夹名称: '