在Debian系统中批量处理图片的常用方法
ImageMagick是Debian系统中最常用的批量图片处理工具,支持格式转换、尺寸调整、质量压缩、裁剪等多种操作,且可通过脚本实现自动化。
sudo apt update
sudo apt install imagemagick
.png文件转换为.jpg格式,使用mogrify(直接修改原文件)或convert(生成新文件)命令:mogrify -format jpg *.png # 直接覆盖原文件
# 或
for file in *.png; do convert "$file" "${file%.png}.jpg"; done # 生成新文件
.jpg文件调整为800x600像素(保持宽高比,若需强制拉伸可加!):mogrify -resize 800x600 *.jpg # 直接修改原文件
# 或
for file in *.jpg; do convert "$file" -resize 800x600 "$file"; done # 生成新文件
.jpg文件的质量降低至80%(减少文件大小,平衡清晰度):mogrify -quality 80 *.jpg # 直接修改原文件
# 或
for file in *.jpg; do convert "$file" -quality 80 "$file"; done # 生成新文件
.jpg文件添加new_前缀:for file in *.jpg; do mv "$file" "new_$file"; done
GraphicsMagick是ImageMagick的分支,性能更优,命令语法类似。
sudo apt update
sudo apt install graphicsmagick
.png文件转换为.jpg:gm mogrify -format jpg *.png
.jpg文件调整为800x600像素:gm convert *.jpg -resize 800x600 *.jpg
GIMP是开源图像编辑软件,通过编写Python脚本可实现批量处理(如调整尺寸、应用滤镜)。
sudo apt install gimp gimp-python
batch_resize.sh脚本,内容如下:#!/bin/bash
if [ "$#" -ne 4 ]; then
echo "Usage: $0 <input_directory> <output_directory> <width> <height>"
exit 1
fi
input_dir="$1"
output_dir="$2"
width="$3"
height="$4"
mkdir -p "$output_dir"
for image in "$input_dir"/*.jpg; do
filename=$(basename "$image")
new_filename="${filename%.*}_resized.${filename##*.}"
new_image="$output_dir/$new_filename"
gimp --batch-mode --no-interface --resize "$width" "$height" "$image" --output "$new_image"
done
echo "Batch resize completed."
赋予执行权限后运行:chmod +x batch_resize.sh
./batch_resize.sh /path/to/input /path/to/output 800 600
cxImage是轻量级图像处理库,支持Python绑定,适合自定义批量处理逻辑。
sudo apt install libcximage-dev
pip install cxImage-Python
batch_process.py脚本,内容如下:import os
from cxImage import Image
def process_image(input_path, output_path):
img = Image(input_path)
img.resize(800, 600) # 调整为800x600像素
img.save(output_path)
def batch_process_images(input_dir, output_dir):
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_filename = os.path.splitext(filename)[0] + '_processed.jpg'
output_path = os.path.join(output_dir, output_filename)
process_image(input_path, output_path)
print(f'Processed {input_path} -> {output_path}')
batch_process_images('/path/to/input', '/path/to/output')
运行脚本:python3 batch_process.py
mogrify等直接修改原文件的命令前,建议复制一份备份(如cp -r /path/to/images /path/to/backup)。convert test.png test.jpg)。以上方法覆盖了Debian系统下批量处理图片的常见需求,可根据具体场景选择合适的工具。