Optimering af PNG og JPG på server.

Dette forum bruges på EGET ANSVAR til at lege med scripts og andre ting med risiko for at beskadige sit eget og andres systemer.
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Optimering af PNG og JPG på server.

Indlæg af AJenbo »

Her er et script til rutine mæssig optimering af billeder på en server. Dette gøres uden at foringen billede kvaliteten, dog fjernes metadata. Det kan være med til at gøre siden hurtigere og billederne vil tage mindre plads på serveren. Jeg oplever generelt en 7% forbedring, men det afhænger af ens billeder.

Scriptet køres 1 gang ugentligt (søge tiden er sat til 2 uger så hvert billede køres igennem alle værktøjer 2 gange hvilket kan resultere i yderligere optimering).

Installering af afhængigheder værktøjer:

Kode: Vælg alt

#!/bin/sh
#Tested on Ubuntu 14.04

apt-get install git-core libjpeg-turbo-progs advancecomp optipng jpegoptim make g++
#jpegrescan
wget https://raw.github.com/kud/jpegrescan/master/jpegrescan
chmod +x jpegrescan
mv jpegrescan /usr/bin
perl -MCPAN -e 'install File::Slurp'
#pngout
wget http://static.jonof.id.au/dl/kenutils/pngout-20130221-linux.tar.gz
tar xvfz pngout-20130221-linux.tar.gz pngout-20130221-linux/x86_64/pngout
mv pngout-20130221-linux/x86_64/pngout /usr/bin
rm -r pngout-20130221-linux pngout-20130221-linux.tar.gz
#zopfli
git clone https://code.google.com/p/zopfli/
cd zopfli
make zopflipng
mv zopflipng /usr/bin
cd ~
rm -r zopfli


Selve scriptet:

Kode: Vælg alt

#!/bin/sh
#Optimize images
find /var/www/images -type f -mtime -14 -name '*.jpg' -exec jpegoptim -q --strip-all {} \; -exec chmod 644 {} \;
find /var/www/images -type f -mtime -14 -name '*.jpg' -exec jpegrescan -s {} {} \;
find /var/www/images -type f -mtime -14 -name '*.png' -exec advpng -z4q {} \;
find /var/www/images -type f -mtime -14 -name '*.png' -exec pngout -yq {} \;
find /var/www/images -type f -mtime -14 -name '*.png' -exec optipng -o7 {} \;
find /var/www/images -type f -mtime -14 -name '*.png' -exec zopflipng -ym --lossy_transparent --lossy_8bit --splitting=3 {} {} \;