Centos中使用ImageMagick对图片进行批量压缩

发布时间 2023-08-15 14:57:07作者: 时光煮酒丶

安装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