Ubuntu中GIMP批量处理图片的常见方法
GIMP内置了基础的批量处理工具,适合简单操作(如调整大小、格式转换)。
BIMP是GIMP的第三方批量处理插件,支持更灵活的操作(如批量重命名、添加文字/边框、调整EXIF信息)。
sudo apt-get install gimp-plugin-registry(该插件包含BIMP);对于复杂需求(如批量添加水印、调整色彩平衡),可通过Python脚本调用GIMP的API实现自动化。
gimp-python-fu插件(通常随GIMP安装,默认启用)。batch_watermark.py),内容如下:#!/usr/bin/env python
from gimpfu import *
import os
def batch_watermark(input_folder, output_folder, watermark_text):
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, filename)
# 加载图片
image = pdb.gimp_file_load(input_path, input_path)
# 添加文字图层(水印)
text_layer = pdb.gimp_text_fontname(image, None, 50, 50, watermark_text, 0, True, 20, PIXELS, "Sans")
# 设置文字透明度
pdb.gimp_item_set_opacity(text_layer, 50)
# 合并图层
pdb.gimp_image_merge_visible_layers(image, CLIP_TO_IMAGE)
# 保存图片(保留原格式)
pdb.gimp_file_save(image, image.active_layer, output_path, output_path)
# 关闭图片
pdb.gimp_image_delete(image)
# 注册脚本
register(
"python_fu_batch_watermark",
"Batch add watermark to images",
"Adds a text watermark to all images in a folder",
"Your Name", "Your Name", "2025",
"<Image>/File/Batch Watermark",
"", # 输入类型(空表示无限制)
[
(PF_DIRNAME, "input_folder", "Input Folder", ""),
(PF_DIRNAME, "output_folder", "Output Folder", ""),
(PF_STRING, "watermark_text", "Watermark Text", "Copyright © 2025")
],
[],
batch_watermark
)
main()
~/.gimp-2.x/plug-ins/,需替换2.x为实际版本号);chmod +x ~/.gimp-2.x/plug-ins/batch_watermark.py;通过Shell脚本循环调用GIMP命令行工具,适合批量执行简单操作(如格式转换、调整大小)。
#!/bin/bash
INPUT_DIR="/path/to/input" # 替换为输入文件夹路径
OUTPUT_DIR="/path/to/output" # 替换为输出文件夹路径
SIZE="800x600" # 目标尺寸
# 创建输出文件夹(若不存在)
mkdir -p "$OUTPUT_DIR"
# 遍历输入文件夹中的所有JPG文件
for file in "$INPUT_DIR"/*.jpg; do
filename=$(basename "$file")
output_file="$OUTPUT_DIR/${filename%.jpg}.png" # 修改后缀为PNG
# 调用GIMP命令行处理图片
gimp -i -b "(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE \"$file\" \"$file\")))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image $SIZE INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable \"$output_file\" \"$output_file\")
(gimp-image-delete image))" -b "(gimp-quit 0)"
done
batch_resize.sh,修改INPUT_DIR和OUTPUT_DIR为实际路径;chmod +x batch_resize.sh;./batch_resize.sh,脚本将自动处理输入文件夹中的所有JPG图片,保存为PNG格式至输出文件夹。~/.config/gimp/2.10/gimp.xml中的memory参数),避免卡顿。