Centos中使用ImageMagick对图片进行批量压缩
安装ImageMagick
yum -y install ImageMagick
批量压缩脚本
#!/bin/bash
# 设置原始图片目录和压缩后图片目录
input_dir="/data/images"
output_dir="/data/images_output"
# 遍历原始图片目录中的所有图片文件
for file in "$input_dir"/*
do
# 检查文件是否为普通文件(非目录)
if [[ -f "$file" ]]; then
# 获取文件名和扩展名
filename=$(basename "$file")
extension="${filename##*.}"
# 统一后缀为小写
lowerextension=$(echo "$extension" | tr '[:upper:]' '[:lower:]')
# 获取文件大小
file_size=$(stat -c "%s" ${file})
if [ $file_size -gt 153600 ]; then
if [ "$lowerextension" = "jpg" ]; then
echo "start compressing image:${filename}"
# 压缩生成到原文件
#convert "$file" -define jpeg:extent=120KB "$file"
# 把内容写入到压缩后图片目录文件中
convert "$file" -define jpeg:extent=120KB "$output_dir/${filename%.*}.$extension"
elif [ "$lowerextension" = "png" ]; then
echo "start compressing image:${filename}"
# 压缩图片
convert "$file" -define jpeg:extent=120KB ~/output.jpg
# 把内容写入到原文件
#cat ~/output.jpg >"$file"
# 把内容写入到压缩后图片目录文件中
cat ~/output.jpg > "$output_dir/${filename%.*}.$extension"
else
echo 'Non-image files, skip!!!'
fi
fi
fi
done