使用Shell脚本结合GIMP命令行工具
Shell脚本是Linux下实现GIMP批量处理的基础方式,通过gimp-console(或gimp的批处理模式)配合循环结构,可自动化完成重复任务(如格式转换、缩放)。例如,批量将JPG图片缩放50%并保存为新文件,可编写如下脚本:
#!/bin/bash
for file in *.jpg; do
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 (* (car (gimp-image-width image)) 0.5) (* (car (gimp-image-height image)) 0.5))
(gimp-file-save RUN-NONINTERACTIVE image drawable \"${file%.jpg}_scaled.jpg\")
(gimp-image-delete image))" -b "(gimp-quit 0)"
done
脚本说明:
for file in *.jpg:遍历当前目录下所有JPG文件;gimp -i:以无界面模式运行GIMP;-b:执行GIMP脚本(此处为缩放操作);-b "(gimp-quit 0)":处理完成后退出GIMP。batch_scale.sh,赋予执行权限(chmod +x batch_scale.sh)后运行即可。使用BIMP插件(图形化批量处理)
BIMP(Batch Image Manipulation Plugin)是GIMP的常用批量处理插件,提供图形化界面,无需编写代码即可完成复杂操作(如调整大小、裁剪、颜色调整、格式转换)。
安装步骤:
.zip格式);~/.config/GIMP/2.10/plug-ins/);使用Python-Fu脚本(高级自定义批量处理)
对于需要复杂逻辑的批量处理(如智能裁剪、滤镜叠加、元数据处理),可使用GIMP内置的Python-Fu脚本语言。Python-Fu支持访问GIMP的所有功能,灵活性更强。
示例脚本(批量调整图片大小并保存):
#!/usr/bin/env python
from gimpfu import *
def batch_resize(input_dir, output_dir, width, height):
# 确保输出目录存在
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 遍历输入目录中的图片文件
for filename in os.listdir(input_dir):
if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
input_path = os.path.join(input_dir, filename)
output_path = os.path.join(output_dir, f"{os.path.splitext(filename)[0]}_resized{os.path.splitext(filename)[1]}")
# 加载图片
image = pdb.gimp_file_load(input_path, input_path)
drawable = pdb.gimp_image_get_active_layer(image)
# 调整大小(保持宽高比)
pdb.gimp_image_scale(image, width, height)
# 保存图片
pdb.gimp_file_save(image, drawable, output_path, output_path)
# 关闭图片
pdb.gimp_image_delete(image)
# 注册脚本
register(
"python_fu_batch_resize",
"Batch Resize Images",
"Resize all images in a directory to specified dimensions",
"Your Name", "Your Name", "2025",
"<Image>/File/Batch Resize...",
"",
[
(PF_DIRNAME, "input_dir", "Input Directory", ""),
(PF_DIRNAME, "output_dir", "Output Directory", ""),
(PF_INT, "width", "Target Width", 800),
(PF_INT, "height", "Target Height", 600)
],
[],
batch_resize
)
main()
使用步骤:
batch_resize.py;~/.config/GIMP/2.10/plug-ins/);使用ImageMagick替代方案(非GIMP原生,但更高效)
若不需要GIMP的高级图像编辑功能(如滤镜、图层),ImageMagick是更轻量级的批量处理工具,支持多种格式转换、缩放、旋转等操作,速度优于GIMP脚本。
示例命令(批量缩放JPG图片):
convert *.jpg -resize 50% output_%d.jpg
命令说明:
convert:ImageMagick的核心命令;*.jpg:匹配当前目录下所有JPG文件;-resize 50%:将图片缩放至原尺寸的50%;output_%d.jpg:输出文件名格式(%d为序号,如output_1.jpg、output_2.jpg)。sudo apt-get install imagemagick # Debian/Ubuntu
sudo dnf install imagemagick # Fedora/CentOS
ImageMagick还支持更多高级功能(如添加水印、裁剪、调整亮度),可通过convert -help查看完整参数。