写一段python代码,要求读取文件夹pic下图片,裁剪图片大小一致之后,生成一个视频,视频中每个图片隔0.5s出现,将完成的视频另存
时间: 2024-10-17 22:03:21 浏览: 15
为了实现这个需求,我们可以使用Python的`imageio`, `PIL`(Pillow库)以及`moviepy`来读取图片、裁剪图片并创建视频。这里是一个简化的例子:
```python
import os
import imageio
from PIL import Image
from moviepy.editor import VideoClip
# 定义图片目录和输出视频路径
img_dir = 'pic'
output_video_path = 'output.mp4'
# 图片尺寸裁剪大小
crop_size = (800, 600)
def crop_and_save_images(img_path):
img = Image.open(img_path)
cropped_img = img.resize(crop_size)
cropped_img.save(f'{os.path.splitext(img_path)[0]}.cropped.jpg')
# 遍历图片文件夹,并裁剪图片
for filename in os.listdir(img_dir):
if filename.endswith(".jpg") or filename.endswith(".png"): # 只处理jpg和png格式的图片
img_path = os.path.join(img_dir, filename)
crop_and_save_images(img_path)
# 创建视频
images_list = [f'{img_dir}/{img[:-4]}.cropped.jpg' for img in os.listdir(img_dir) if img.endswith(".jpg") or img.endswith(".png")]
video_clip = ImageSequenceClip(images_list, duration=0.5) # 每张图片间隔0.5秒
# 导出视频
video_clip.write_videofile(output_video_path)
print(f"Video '{output_video_path}' has been created.")
阅读全文