Настройка Unix сервера. Оптимизация изображений

в 8:56, , рубрики: optipng, pngcrush, настройка сервера, Серверное администрирование, метки: , ,

Доброго времени суток, читатели Хабрахабр.

Лирика

Существуют отличные солнечные дни, когда сидя в офисе, думая о прогулке в парке, мы вынуждены настраивать Unix сервер под интернет-проект.

Предлагаю вашему вниманию алгоритм, который ускорит вашу работу.

Полезная информация

  1. Создаем команду «unpack» для распаковки популярных архивов, добавив в файл «.bashrc» код:
    # Command «unpack»
    unpack ()
    {
    	if [ -f $1 ] ; then
    		case $1 in
    			*.tar.bz2)  tar xvjf $1    ;;
    			*.tar.gz)   tar xvzf $1    ;;
    			*.tar.xz)   tar xvJf $1    ;;
    			*.bz2)      bunzip2 $1     ;;
    			*.rar)      unrar x $1     ;;
    			*.gz)       gunzip $1      ;;
    			*.tar)      tar xvf $1     ;;
    			*.tbz2)     tar xvjf $1    ;;
    			*.tgz)      tar xvzf $1    ;;
    			*.zip)      unzip $1       ;;
    			*.xz)       unxz $1        ;;
    			*)          echo "'$1': Unknown method of file compression"  ;;
    		esac
    		else
    			echo "'$1' not found"
    	fi
    }
    

  2. Устанавливаем «advpng» (загрузить aктуальную версию).
    wget -P ~/usr/bin 'http://citylan.dl.sourceforge.net/project/advancemame/advancecomp/1.15/advancecomp-1.15.tar.gz';cd ~/usr/bin;tar xvzf 'advancecomp-1.15.tar.gz';cd 'advancecomp-1.15';./configure;make;cd ~/usr/bin;rm -f 'advancecomp-1.15.tar.gz';~/usr/bin/advancecomp-1.15/advpng;echo '«advpng» successfully installed on the server.'
    

    Пример:

    ~/usr/bin/advancecomp-1.15/advpng -z4 'file.png'
    

  3. Устанавливаем «gifsicle» (загрузить aктуальную версию).
    wget -P ~/usr/bin 'http://www.lcdf.org/gifsicle/gifsicle-1.67.tar.gz';cd ~/usr/bin;tar xvzf 'gifsicle-1.67.tar.gz';cd 'gifsicle-1.67';./configure;make;cd ~/usr/bin;rm -f 'gifsicle-1.67.tar.gz';~/usr/bin/gifsicle-1.67/src/gifsicle -h;echo '«gifsicle» successfully installed on the server.'
    

    Пример:

    ~/usr/bin/gifsicle-1.67/src/gifsicle -b -O3 'file.gif'
    

  4. Устанавливаем «jpegoptim» (загрузить aктуальную версию).
    wget -P ~/usr/bin 'http://www.kokkonen.net/tjko/src/jpegoptim-1.2.4.tar.gz';cd ~/usr/bin;tar xvzf 'jpegoptim-1.2.4.tar.gz';cd 'jpegoptim-1.2.4';./configure;make;cd ~/usr/bin;rm -f 'jpegoptim-1.2.4.tar.gz';~/usr/bin/jpegoptim-1.2.4/jpegoptim -h;echo '«jpegoptim» successfully installed on the server.'
    

    Пример:

    ~/usr/bin/jpegoptim-1.2.4/jpegoptim -f -o --strip-all --strip-icc --strip-iptc -m100 'file.jpg'
    

  5. Устанавливаем «jpegtran» (загрузить aктуальную версию).
    wget -P ~/usr/bin 'http://www.ijg.org/files/jpegsrc.v8d.tar.gz';cd ~/usr/bin;tar xvzf 'jpegsrc.v8d.tar.gz';cd 'jpeg-8d';./configure;make;cd ~/usr/bin;rm -f 'jpegsrc.v8d.tar.gz';~/usr/bin/jpeg-8d/jpegtran -h;echo '«jpegtran» successfully installed on the server.'
    

    Пример:

    ~/usr/bin/jpeg-8d/jpegtran -copy none -progressive -outfile 'XXXXX.jpg' 'file.jpg'
    mv -f 'XXXXX.jpg' 'file.jpg'
    

  6. Устанавливаем «optipng» (загрузить aктуальную версию).
    wget -P ~/usr/bin 'http://netcologne.dl.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.4/optipng-0.7.4.tar.gz';cd ~/usr/bin;tar xvzf 'optipng-0.7.4.tar.gz';cd 'optipng-0.7.4';./configure;make;cd ~/usr/bin;rm -f 'optipng-0.7.4.tar.gz';~/usr/bin/optipng-0.7.4/src/optipng/optipng -h;echo '«optipng» successfully installed on the server.'
    

    Пример:

    ~/usr/bin/optipng-0.7.4/src/optipng/optipng -o7 'file.png'
    

  7. Устанавливаем «pngout» (загрузить aктуальную версию).
    wget -P ~/usr/bin 'http://static.jonof.id.au/dl/kenutils/pngout-20120530-linux-static.tar.gz';cd ~/usr/bin;tar xvzf 'pngout-20120530-linux-static.tar.gz';cd ~/usr/bin;rm -f 'pngout-20120530-linux-static.tar.gz';~/usr/bin/pngout-20120530-linux-static/x86_64/pngout-static;echo '«pngout» successfully installed on the server.'
    

    Пример:

    ~/usr/bin/pngout-20120530-linux-static/x86_64/pngout-static 'file.png'
    

  8. Устанавливаем «pngcrush» (загрузить aктуальную версию).
    wget -P ~/usr/bin 'http://ignum.dl.sourceforge.net/project/pmt/pngcrush/1.7.41/pngcrush-1.7.41.tar.xz';cd ~/usr/bin;tar xvJf 'pngcrush-1.7.41.tar.xz';cd 'pngcrush-1.7.41';make;cd ~/usr/bin;rm -f 'pngcrush-1.7.41.tar.xz';~/usr/bin/pngcrush-1.7.41/pngcrush;echo '«pngcrush» successfully installed on the server.'
    

    Пример:

    ~/usr/bin/pngcrush-1.7.41/pngcrush -rem alla -brute -reduce 'file.png' 'XXXXX.png'
    mv -f 'XXXXX.png' 'file.png'
    

  9. Устанавливаем «yuicompressor» (загрузить aктуальную версию).
    wget -P ~/usr/bin 'http://cloud.github.com/downloads/yui/yuicompressor/yuicompressor-2.4.7.zip';cd ~/usr/bin;unzip 'yuicompressor-2.4.7.zip';cd ~/usr/bin;rm -f 'yuicompressor-2.4.7.zip';java -jar ~/usr/bin/yuicompressor-2.4.7/build/yuicompressor-2.4.7.jar -h;echo '«yuicompressor» successfully installed on the server.'
    

    Пример:

    java -jar ~/usr/bin/yuicompressor-2.4.7/build/yuicompressor-2.4.7.jar --type js -o 'XXXXX.js or XXXXX.css' 'file.js or file.css'
    mv -f 'XXXXX.js or XXXXX.css' 'file.js or file.css'
    

Подводя итоги

В результате сервер готов к обработке изображенией. Достаточно написать bash-скрипт для автоматизации процессов и не беспокоится о лишних мегабайтах.

Автор: romankondratev

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js