ваш IP: 18.97.14.88

BASH автоматизация сжатия изображений

Возникают ситуации, когда необходимо выполнить оптимизацию изображений в большом количестве, например, при использовании CMS 1С Битрикс (об этом я уже писал ранее Сжатие изображений в CMS 1С Битрикс), или при ипользовании OpenCart, или какой нибудь другой CMS, где этот функционал не реализован  на уровне ядра. Может вообще в других случаях. Так или иначе, задачи могут отличаться, но иметь одну суть. Представляю третью версию скрипта, для сжатия изображений:

#!/bin/bash
cd <КАТАЛОГ С ИЗОБРАЖЕНИЯМИ>

# Устанавливаем диапазон дат, в данном примере за сутки

DATENOW=`date '+%Y-%m-%d %H:%M:%S'` # Текущая дата
DATELAST=`date '+%Y-%m-%d %H:%M:%S' --date="1 day ago"` # предыдущая дата

imagemass=`find . -newermt "$DATELAST" ! -newermt "$DATENOW" -size +100k |tr '\n' ' ' |sed "s/ /,/g"`
i=0
IFS=','
read -r -a arrayname <<< "$imagemass"
while [ $i -lt ${#arrayname[@]} ]
do
sizeimg=`du -h ${arrayname[$i]}`
echo "Размер файла до преобразования" $sizeimg
image_format=`identify -format %m ${arrayname[$i]}`

if [ $image_format = "JPEG" ]
then
jpegoptim --strip-all --all-progressive -ptm85 ${arrayname[$i]}
elif [ $image_format = "PNG" ]
then
optipng -strip all -o5 ${arrayname[$i]}
else
echo "ДРУГОЙ ФОРМАТ"
fi

sizeimagem=`du -h ${arrayname[$i]}`
echo "Размер файла после преобразования" $sizeimagem
#sleep 1
i=$[i+1]
done

 

Автор: Master Wenom
18 марта 2019
blog comments powered by Disqus