温馨提示×

linux gimp怎样批处理

小樊
55
2026-09-09 14:40:55
栏目: 智能运维

在 Linux 下用 GIMP 做批处理,常见有几种方式,从简单到高级依次是:


一、使用 GIMP 自带功能(简单批处理)

1. 使用 BIMP 插件(推荐,图形界面)

BIMP(Batch Image Manipulation Plugin)是 GIMP 的批处理插件。

安装(Ubuntu / Debian):

sudo apt install gimp-plugin-registry

或手动安装 BIMP(新版 GIMP 可能需源码或 flatpak 版)

使用:

  • 打开 GIMP
  • File → Batch Image Manipulation
  • 添加图片
  • 选择操作(缩放、格式转换、重命名等)
  • 执行

✅ 适合:格式转换、批量缩放、加水印


二、使用 GIMP 命令行 + Script-Fu(无界面批处理)

GIMP 支持用 Scheme 脚本(Script-Fu)批量处理。

示例:批量转换 PNG → JPG

1. 写 Script-Fu 脚本(batch-convert.scm)

(define (batch-convert pattern)
  (let* ((filelist (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-merge-visible-layers image CLIP-TO-IMAGE))))
        (gimp-file-save RUN-NONINTERACTIVE image drawable
                        (string-append (substring filename 0 (- (string-length filename) 4)) ".jpg")
                        ".jpg")
        (gimp-image-delete image))
      (set! filelist (cdr filelist)))))

2. 运行:

gimp -i -b '(batch-convert "*.png")' -b '(gimp-quit 0)'

✅ 适合:固定流程、服务器环境
❌ 脚本语法较难


三、使用 GIMP + Python(更灵活,推荐进阶)

GIMP 支持 Python-Fu(注意:GIMP 3 已移除 Python 支持)。

示例(GIMP 2.x):

from gimpfu import *

def batch_resize(input_dir, output_dir, width):
    import os
    for f in os.listdir(input_dir):
        if f.endswith(".png"):
            img = pdb.gimp_file_load(input_dir + f, f)
            pdb.gimp_image_scale(img, width, int(width * img.height / img.width))
            pdb.gimp_file_save(img, img.active_layer, output_dir + f, f)
            pdb.gimp_image_delete(img)

register(...)
main()

运行:

gimp -i -b 'python-fu-batch-resize RUN-NONINTERACTIVE "/in/" "/out/" 800'

四、更推荐的替代方案(非 GIMP)

如果你只是批处理图片,Linux 下更高效的是:

  • ImageMagick
mogrify -resize 800x *.png
  • parallel + convert
  • ffmpeg(视频帧)

✅ 速度快
✅ 命令简单
❌ 不如 GIMP 强大(如复杂图层)


总结建议

需求 推荐方式
不懂代码 BIMP 插件
服务器/自动化 GIMP + Script-Fu
高效简单批处理 ImageMagick

如果你说明具体要批处理什么(如:改尺寸 / 转格式 / 加水印),我可以给你可直接用的命令或脚本。

0 踩