image2gif 工具完整开发与打包流程总结

项目功能

  • 功能:将指定文件夹下的每张图片单独转换为 GIF。

  • 输出:每张图片生成一个 GIF,放入 output 文件夹。

  • 支持参数:

    • -i / --input:输入图片目录(默认当前目录)

    • -o / --output:输出 GIF 文件夹(默认 output

  • 开发语言:Python 3.8+

  • 依赖库:Pillow


项目结构

main.py 

main.py 示例:

import os

import argparse

from PIL import Image

  
  

def convert_images_to_gif(input_dir=".", output_dir="output"):

    """

    将指定目录下的每张图片单独转换为 GIF,并放到输出文件夹

    :param input_dir: 输入图片目录

    :param output_dir: 输出 GIF 文件夹

    """

    if not os.path.isdir(input_dir):

        print(f"目录不存在: {input_dir}")

        return

  

    # 创建输出文件夹(如果不存在)

    os.makedirs(output_dir, exist_ok=True)

  

    # 获取图片文件

    img_files = [

        f for f in os.listdir(input_dir)

        if f.lower().endswith(('.png', '.jpg', '.jpeg'))

    ]

  

    if not img_files:

        print(f"{input_dir} 中没有找到图片文件!")

        return

  

    for img_file in img_files:

        img_path = os.path.join(input_dir, img_file)

        output_name = os.path.join(output_dir,

                                   os.path.splitext(img_file)[0] + ".gif")

  

        try:

            with Image.open(img_path) as img:

                img.save(output_name, format="GIF")

            print(f"已生成 {output_name}")

        except Exception as e:

            print(f"转换失败 {img_file}{e}")

  
  

def main():

    parser = argparse.ArgumentParser(

        description="将图片文件夹中的每张图片单独转换为 GIF,输出到 output 文件夹")

    parser.add_argument("-i",

                        "--input",

                        type=str,

                        default=".",

                        help="输入图片目录,默认当前目录")

    parser.add_argument("-o",

                        "--output",

                        type=str,

                        default="output",

                        help="输出 GIF 文件夹,默认 output")

  

    args = parser.parse_args()

    convert_images_to_gif(args.input, args.output)

  
  

if __name__ == "__main__":

    main()

本地开发与测试

  1. 创建虚拟环境:
python -m venv venv
source venv/Scripts/activate   # Windows
# 或 source venv/bin/activate  # Linux/macOS
  1. 安装依赖:
pip install pillow
  1. 本地测试: 在当前文件夹增加几张图片测试,执行会导出git格式文件
python main.py

打包成 EXE(Windows)

  1. 安装 PyInstaller:
pip install pyinstaller
  1. 打包命令:
pyinstaller --onefile --name image2gif main.py
  • 可选:

    • 去掉 --icon 临时测试。

    • --add-data 如果有资源文件需要打包。

  • 打包完成后,生成文件在:

dist/
├─ image2gif.exe
  1. 运行 EXE:
# 默认输出到 output 文件夹
image2gif.exe

# 指定输入输出目录
image2gif.exe -i "C:\Users\you\Pictures" -o "C:\Users\you\GIFs"
  • 程序会自动创建 output 文件夹(或你指定的输出文件夹)并生成 GIF。

注意事项

  • 路径:运行 EXE 时最好使用绝对路径。

  • 图标文件:必须存在并为 .ico 格式,否则 PyInstaller 会报错。

  • 虚拟环境:打包前在干净的虚拟环境中安装依赖,可避免多余库