Tänään 27.5.2018 nimipäiviä viettää: Ritva ja Ingeborg onnea!

Pngcrush

Kuinka pakkaan ja puristan PNG kuvatiedoston linuxissa?

Mikä on PNG kuva?

PNG (Portable Network Graphics) on häviötön kuvan pakkaus- tiedostomuoto, se on otettu korvaamaan ei vapaa GIF-tiedostomuoto.

Epävirallisesti lyhenne PNG tuleekin sanoista PNG's Not Gif.

PNG kuvan pakkaus on siis häviötöntä jolloin kuvat ovat teräviä, mutta voivat olla suhteellisen suuria kooltaan. Jotta tiedostokokoa saataisiin pienemmäksi, on työkalu jolla voidaan pakata PNG kuvaa vieläkin pienemmäksi, häviöttömästi!

Komentorivi pohjainen ohjelma on nimeltään pngcrush, ja se on saatavilla sekä windows että linux käyttöjärjestelmille. Ohjelma voi pienentää tiedoston kokoa jopa 40% alkuperäisestä, sillä ohjelma kokeilee eri pakkaustasoilla PNG kuvan suodatinmetodeja.

Ohjelman ajaminen on helppoa. esim: './pngcrush input.png output.png'.

Asennus

Jos pngcrush ei ole distrosi pakettivalikoimassa, kuten minulla (rhel 6), voit ladata ohjelman pmt.sourceforge.net sivulta.

Pura tiedosto esim. pngcrush-1.7.15.tar.xz ja mene kansioon johon purit sen. Kansiossa avaa komentotulkki ja käskytä 'make' joka luo hetkessä pngcrush -tiedoston jonka voit ottaa talteen esim. ~/ohjelmat/pngcrush kansioon.

Käyttö

Nyt viet kuvia tuohon pngcrush kansioon joita haluat optimoida ja/tai puristaa pienemmäksi.

Voit optimoida kuvia yksitellen käskyllä: ./pngcrush input.png output.png

Tai voit optiomoida useita kuvia yhdellä kertaa: ./pngcrush -d optimoitu -e .png *.png tällä käskyllä luodaan kansio optimoitu jonne kaikki optimoidut kuvat siirretään, ja näin alkuperäiset kuvat pysyvät koskemattomina.

Vielä hiukan paremmin saa puristettua kun lisää käskyyn vivun -brute jolloin ohjelma kokeilee 114 erillaista suodatus/pakkaus metodia.

Käskytä silloin näin: ./pngcrush -brute -d optimoitu -e .png *.png

Lopuksi

On olemassa toinenkin ohjelma nimeltään optipng, joka muuten löytyi epel reposta tähän mun rhel 6:n toisin kuin tämä pngcrush. Testasin molempia ohjelmia ja päädyin itse käyttämään pngcrushia koska se puristaa tiedostot pienemmiksi, mikä voi johtua tietty siitä että epelin reposta asennettu optipng on vaan niin paljon vanhempi.