sh 我写了这个脚本来压缩一个非常繁重的项目图像文件夹。它适用于jpg和png。它对我有用,但它可能需要一些修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 我写了这个脚本来压缩一个非常繁重的项目图像文件夹。它适用于jpg和png。它对我有用,但它可能需要一些修改相关的知识,希望对你有一定的参考价值。

#!/bin/bash

#this script was written to be called with find, something like:
# find . -type f \( -name *.jpg -o -name *.png -o -name *.JPG -o -name *.PNG \) -exec ~/batchImageOptim.sh "{}" \;

if [[ $# == 1 ]]; then
  input_file="$1"
else
  echo "no arguments, no party"
  exit 255
fi

if [ ! -f "$input_file" ]; then
  echo "$input_file not found!"
  exit 255
fi

if [[ "$input_file" == *"cache"* ]]; then
  echo 'archivos en cache not cool dud'
  exit 255
fi


SUFFIX='_oldnotoptimyet'

if [[ $input_file == *"$SUFFIX"* ]]; then
  echo "archivo contiene $SUFFIX!!!"
  echo "$input_file"
  correct_name=${input_file//$SUFFIX/}
  echo "$correct_name"
  echo "$input_file el nombre correcto es $correct_name"
  mv "$input_file" "$correct_name"
  input_file="$correct_name"
  exit 255
fi

FILE_EXTENSION='ext'

if [[ $input_file == *".jpg"* ]]; then
    FILE_EXTENSION='jpg'
elif [[ $input_file == *".JPG"* ]]; then
    FILE_EXTENSION='jpg'
elif [[ $input_file == *".png"* ]]; then
    FILE_EXTENSION='png'
elif [[ $input_file == *".PNG"* ]]; then
    FILE_EXTENSION='png'
else
    echo 'tipo de imagen no soportado... salimos!'
    exit 255
fi


# cambio nombre de archivo para saber que es el bloqueado
temp_file=$(echo $input_file | sed -e "s/\.$FILE_EXTENSION/$SUFFIX\.$FILE_EXTENSION/g")
mv "$input_file" "$temp_file"
if [ ! -f "$temp_file" ]; then
  echo "error al mover!"
  echo "$input_file"
  exit 255
fi

# jpg se optimizan de manera distinta a png:

if [ $FILE_EXTENSION = 'jpg' ]; then
  # http://stackoverflow.com/a/7262050
  convert -strip -interlace Plane -sampling-factor 4:2:0 -define jpeg:dct-method=float -quality 85% "$temp_file" "$input_file"

elif [ $FILE_EXTENSION = 'png' ]; then
  convert "$temp_file" -quality 85 -depth 8 "$input_file"
fi

if [ ! -f "$input_file" ]; then
  echo "error al optimizar"
  mv "$temp_file" "$input_file"
  exit 255
else
  rm "$temp_file"
  exit 255
fi

以上是关于sh 我写了这个脚本来压缩一个非常繁重的项目图像文件夹。它适用于jpg和png。它对我有用,但它可能需要一些修改的主要内容,如果未能解决你的问题,请参考以下文章

(原创)多系统间需要对接,我写了一个接口框架。实用性非常强,写出来大家交流。需要的可以直接搬过去用。(第1篇)

我写了一个脚本,可在“任意”服务器上执行命令!

.sh 文件的 Git bash 选项卡完成

如何压缩这些循环?

我写了个项目,帮你学习HTTP接口测试!

工科生实用链接(图像处理优化算法压缩深度学习)