Dieses Skript ist komplett von CHATGPT generiert. Ich habe nur die Anforderungen in Worten beschrieben. Die unbefriedigenden Teile werden auch direkt in Worten angesprochen. Es ist nach zwei Überarbeitungen fertig. Die Effizienz ist YYDS!
import os
from PIL import Image
def convert_gif_to_jpg(gif_filename, output_folder, width=None, height=None):
current_directory = os.getcwd() # 获取当前工作目录
gif_path = os.path.join(current_directory, gif_filename) # 将当前工作目录和 GIF 文件名拼接起来
with Image.open(gif_path) as im:
frame_count = 0
while True:
try:
im.seek(frame_count)
except EOFError:
break
frame_count += 1
if width is not None and height is not None:
resized_im = im.resize((width, height))
else:
resized_im = im
# 将调色板模式的图像转换为 RGB 或 RGBA 模式
if resized_im.mode == 'P':
resized_im = resized_im.convert('RGBA')
# 保存为 JPEG 格式
file_name = f"frame_{frame_count}.jpg"
resized_im.convert('RGB').save(file_name, 'JPEG')
if __name__ == '__main__':
gif_filename = "1.gif"
output_folder = "output"
width = 320
height = 170
convert_gif_to_jpg(gif_filename, output_folder, width, height)