温馨提示×

Linux系统中GIMP如何进行批处理

小樊
54
2025-09-24 17:58:05
栏目: 智能运维

Linux系统中GIMP进行批处理的常用方法

1. 使用Shell脚本调用GIMP命令行

Shell脚本是最基础的批处理方式,通过循环遍历文件夹中的图片文件,调用GIMP的命令行工具(gimp)执行批量操作。
步骤

  • 编写Shell脚本(如batch_resize.sh),内容如下:
    #!/bin/bash
    input_folder="/path/to/input"  # 输入文件夹路径
    output_folder="/path/to/output"  # 输出文件夹路径
    mkdir -p "$output_folder"  # 创建输出文件夹(若不存在)
    
    # 遍历输入文件夹中的所有.jpg文件
    for file in "$input_folder"/*.jpg; do
      filename=$(basename "$file")
      # 调用GIMP批量调整大小(示例:调整为800x600像素)并保存到输出文件夹
      gimp -i -b "(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE \"$file\" \"$file\"))) 
                        (drawable (car (gimp-image-get-active-layer image)))) 
                  (gimp-image-scale image 800 600) 
                  (gimp-file-save RUN-NONINTERACTIVE image drawable \"$output_folder/$filename\") 
                  (gimp-image-delete image))" -b "(gimp-quit 0)"
    done
    
  • 赋予脚本执行权限:chmod +x batch_resize.sh
  • 运行脚本:./batch_resize.sh

说明:脚本中通过gimp -i进入非交互模式,-b执行LISP命令,gimp-quit 0退出GIMP。可根据需求替换为裁剪、颜色调整等操作。

2. 使用Python-Fu插件(推荐复杂场景)

Python-Fu是GIMP的官方Python插件,支持更灵活的批量处理(如调用PIL库、处理图层),适合有编程基础的用户。
步骤

  • 安装插件:大多数Linux发行版(如Ubuntu)可通过包管理器安装:
    sudo apt-get install gimp-python-fu
    
  • 编写Python脚本(如batch_convert.py):
    #!/usr/bin/env python
    from gimpfu import *
    import os
    
    def batch_convert(input_folder, output_folder):
        # 确保输出文件夹存在
        if not os.path.exists(output_folder):
            os.makedirs(output_folder)
        
        # 遍历输入文件夹中的所有图片文件(支持jpg、png)
        for filename in os.listdir(input_folder):
            if filename.lower().endswith(('.jpg', '.png')):
                input_path = os.path.join(input_folder, filename)
                output_path = os.path.join(output_folder, f"processed_{filename}")
                
                # 加载图像
                image = pdb.gimp_file_load(input_path, input_path)
                drawable = pdb.gimp_image_get_active_layer(image)
                
                # 执行批量操作(示例:转为PNG格式+调整大小)
                pdb.file_png_save(image, drawable, output_path, output_path, 0, 9, 1, 1, 1, 1)
                
                # 关闭图像
                pdb.gimp_image_delete(image)
    
    # 注册插件(名称、描述、参数、返回值)
    register(
        "python_fu_batch_convert",
        "Batch convert images to PNG with resizing",
        "Convert all JPG/PNG in input folder to PNG in output folder, resized to 800x600",
        "Your Name", "Your Name", "2025",
        "<Toolbox>/Xtns/Languages/Python-Fu/Batch Convert",  # 菜单路径
        "",  # 图像类型(空表示支持所有)
        [
            (PF_DIRNAME, "input_folder", "Input Folder", ""),
            (PF_DIRNAME, "output_folder", "Output Folder", "")
        ],
        [],  # 无输出参数
        batch_convert
    )
    
    main()
    
  • 运行脚本
    将脚本保存到GIMP插件目录(如~/.config/GIMP/2.10/plug-ins/),赋予执行权限:chmod +x ~/.config/GIMP/2.10/plug-ins/batch_convert.py。重启GIMP后,在菜单栏选择Xtns > Languages > Python-Fu > Batch Convert,设置输入/输出文件夹即可运行。

3. 使用BIMP插件(图形化界面)

BIMP(Batch Image Manipulation Plugin)是GIMP的第三方批处理插件,提供图形化界面,适合新手快速上手。
步骤

  • 安装插件
    下载BIMP插件(如从SourceForge),解压后将bimp.pybimp.scm文件复制到GIMP插件目录(~/.config/GIMP/2.10/plug-ins/),重启GIMP。
  • 使用插件
    打开GIMP,选择文件 > 批处理图像,弹出界面后:
    1. 点击“添加”按钮选择需处理的图片(支持多文件);
    2. 在“操作”面板选择所需功能(如调整大小、裁剪、添加水印);
    3. 设置输出路径和文件格式(如PNG、JPG);
    4. 点击“应用”开始批量处理。

4. 使用GIMP Script-Fu(Scheme语言)

Script-Fu是GIMP的内置脚本语言(基于Scheme),适合简单的批量处理任务,无需额外安装插件。
步骤

  • 编写Script-Fu脚本(如batch_resize.scm):
    (define (batch-resize pattern width height)
      (let ((filelist (cadr (file-glob pattern 1))))  ; 获取匹配的文件列表
        (while (not (null? filelist))
          (let* ((filename (car filelist))
                 (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
                 (drawable (car (gimp-image-get-active-layer image))))
            (gimp-image-scale image width height)  ; 调整大小
            (gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)  ; 覆盖保存
            (gimp-image-delete image))  ; 删除图像对象(释放内存)
          (set! filelist (cdr filelist)))))  ; 处理下一个文件
    
    ; 调用函数:批量调整所有.jpg文件为800x600像素
    (batch-resize "*.jpg" 800 600)
    
  • 保存并运行脚本
    将脚本保存到GIMP脚本目录(如~/.config/GIMP/2.10/scripts/),重启GIMP。脚本会自动加载,通过滤镜 > 脚本 > batch-resize运行(需根据脚本中的函数名调整)。

注意事项

  • 备份原始文件:批处理前务必备份原始图片,避免操作失误导致数据丢失;
  • 测试脚本:正式处理前,先用少量图片测试脚本,确保参数正确;
  • 优化性能:处理大量图片时,可分批运行(如每次处理100张),避免占用过多内存;
  • 权限问题:确保脚本有执行权限(chmod +x),且输入/输出目录可读写。

0