STRIX
OptimizacijaSlika: Revision 1

Littleutils

Optimizacija veličine slika za web može se elegantno napraviti skupom alata http://sourceforge.net/projects/miscutils/ littleutils. Dotični sadrži razne korisne programe za rad sa slikama, među ostalim i programe za optimizaciju slika (opt-jpg, opt-gif i opt-png).

Spomenuti optimizatori slika zapravo koriste vanjske programe http://sylvana.net/jpegcrop/jpegtran/ jpegtran, http://www.lcdf.org/~eddietwo/gifsicle/ gifsicle i http://pmt.sourceforge.net/pngcrush/ pngcrush za optimiziranje. Oni sami su wrapperi oko njih, uz ugrađen "inteligentni" algoritam (npr. za svaki JPEG optimizator napravi progressive i non-progressive verziju slike i zadrži onu koja je manja).

Optimizacija slika je lossless i zasniva se na izbacivanju podataka koji nisu bitni za prikaz same slike (razni meta-podaci, smanjivanje alocirane palete boja ukoliko na slici postoji manji broj boja u odnosu na alocirani broj itd.).

Korištenje

Prije početka optimizacije zgodno je odrediti koliko su slike trenutno ukupno velike. To se može napraviti npr. ovako:

 $ find . name ".jpg" print | tar -cf jpg.tar -T
 $ find . name ".gif" print | tar -cf gif.tar -T
 $ find . name "*.png" -print | tar -cf png.tar -T

Sada imamo tri datoteke (jpg.tar, gif.tar i png.tar) čije veličine predstavljaju ukupne veličine slika po formatima.

Optimizaciju radimo ovako:

 $ find . -name ".jpg" -exec opt-jpg {} \;
 $ find . -name "
.gif" -exec opt-gif {} \;
 $ find . -name "*.png" -exec opt-png {} \;

Nakon toga možemo ponoviti prethodne naredbe s tar-om (uz druga imena datoteka) kako bismo utvrdili koliko smo dobili optimizacijom.

Više informacija o optimizatorima može se dobiti iz njihovih man stranica (man opt-jpg, man opt-gif i man opt-png).

Upozorenje

Prije početka optimizacije treba imati na umu dvije stvari:

  • optimizacija je vrlo agresivna i iz slika izbacuje sve podatke nepotrebne za prikaz slike, a koje u nekim slučajevima možda želimo zadržati (npr. http://www.exif.org/ EXIF podaci)
  • optimizacija slika neće očuvati interlacing koji će uvijek biti uklonjen iz slika u GIF i PNG formatu