A grafikus fájlok súlya és optimalizálása

2005. február 02

súlya

Súly és optimalizálás. Megmagyarázzuk, hogyan kell kiszámítani egy grafikus fájl súlyát, és hogyan lehet csökkenteni a grafikus fájl bájtjainak méretét. Példák a képek tömegének optimalizálására használt technikákra.

Ebben a cikkben kitérünk néhány alapvető szempontra, amelyeket figyelembe kell vennünk, amikor általában grafikus fájlokkal és különösen bitképekkel dolgozunk. Arról van szó, hogy ellenőrizzék a fájlok súlyát, hogy azok kevesebb helyet foglaljanak el, és ezért gyorsabban továbbíthatók legyenek.

Az interneten létfontosságú kérdés, és a DesarrolloWeb.com webhelyen már többször foglalkoztunk ezzel a kérdéssel. Ebben a webdesign-kézikönyvben elméleti megközelítéssel találja meg, de alapvető ismeretekkel rendelkezik mindazok számára, akik elkötelezettek a webdesign mellett.

Először a fájlok súlyáról beszélünk, majd meglátjuk, hogyan lehet optimalizálni őket.

A grafikus fájlok súlya

A bittérképek változó számú színben definiálhatók. Általános szabály, hogy minél több színű a kép, annál jobb minőségű lesz, bár ez a szabály sokat függ a képtől.

Például egy fehér alapon fekete betű (1 bites színmélység), amely egyenes vízszintes és függőleges vonalakból áll, csak a két szín megfelelő megjelenítésére lesz szükség, még akkor is, ha növeljük méretüket (felbontás).

Ha 8 bit színmélységgel dolgozunk, akkor 256 lehetséges színünk lesz minden pixelhez (például GIF formátumú ikonok vagy illusztrációk esetén), és ha a mélységet 24 bitre növeljük, akkor milliónyi színünk lesz a kép minden egyes képpontja (például JPG vagy PNG formátumú fényképek esete).

Különböző felbontásokat is meghatározhatunk egy képhez. Minél nagyobb a felbontás, annál több képpont képződik, annál több információra lesz szüksége, és ezért nagyobb lesz a kapott fájl mérete.

Ezért minél több a kép színe és nagyobb a felbontása, annál nagyobb a fájl súlya, amely szükséges a tárolásához.

A fenti képletben a szélességet és a magasságot hüvelykben, a felbontást pixelenként és a színmélységet bájtban adják meg.

Például 3 x 2 hüvelykes képhez 72 dpi felbontással és 8 bit színmélységgel:

Fájlméret = [[(3 x 72) x (2 x 72)] x 8]/8 = 31104 bájt = 31 Kb

Ha a kép mérete centiméterben van megadva, ossza el ezeket 2,54-vel. Így egy 1 x 1 hüvelykes kép 300 dpi felbontással és 24 bit színmélységgel (valódi szín) súlya: összesen 90 000 pixelt tartalmaz.

Fájlméret = [[(1 x 300)/2,54 x (1 x 300)/2,54] x 24]/8 = 41850 bájt = 419 Kb

Ha közvetlenül pixelekkel dolgozunk (például digitális fényképezőgéppel rögzítjük), akkor elegendő lesz a kép méretét egymással és a színmélységgel megszorozni, hogy meghatározzuk a képfájlban lévő bitek mennyiségét, és ha az eredményt elosztjuk 8 között, akkor a fájl súlya bájtokban lesz megadva.

Mint láthatjuk, a kapott súlyok nagyon magasak, különösen az internetre szánt képek esetében, ahol a sávszélesség korlátozott erőforrás.

Grafikus fájlok optimalizálása

Általában a bittérképes fájloknak sok grafikus információt kell tárolniuk, ami végső súlyukat bájtokban megnöveli, mind a nyomtatáshoz (ha a kép nagyon nagy, a nyomtatási folyamat hosszú időt vehet igénybe), mind az internetes átviteléhez, olyan közeg, amelyben a sávszélesség nagyon korlátozott.

A grafikus fájlok súlyának minimalizálása érdekében két különböző elv alapján különböző optimalizálási technikákat fejlesztettek ki:

  • Csökkentse a képen használt színek számát.
  • Tömörítse a képadatokat, hogy kevesebb helyet foglaljon el.

Színcsökkentés (tompítás)

A dithering elve a képen használt színek számának csökkentésén alapul, figyelembe véve, hogy az esetek többségében túl sok grafikus információt használnak fel egy fájlban, ami olyan információ, amely a kép végső minőségében észrevehető veszteség nélkül kiküszöbölhető.

Ha egy bizonyos kép csak 40 színt használ, akkor a fájl méretének csökkentéséhez elegendő a 40 szín meghatározása egy színpaletta segítségével, majd a kép pontjainak mentése 8 bit mélységgel.

Másrészt egy 256 színt használó kép elfogadható minőségű lehet ugyanahhoz a képhez képest, 16,8 millió színnel, háromszor kisebb méretben. Annak érdekében, hogy olyan színt kapjunk, amely nincs jelen a kép 256 színpalettájában, mindig lehetséges a meglévő színek keverése, a legtöbb esetben jó közelítéssel a szükségeshez.

A dithering technika feladata lesz kiszámítani azt az arányt, amellyel a paletta színeit el kell keverni, hogy más színt kapjanak.

Egy bizonyos színtónus eléréséhez több pontot használnak, amelyek színe nagyon közel áll az elérni kívánt színhez. A kép bizonyos távolságból történő megtekintésekor a szomszédos pontok színe keveredik, ami új színárnyalatok illúzióját kelti.

Ezt a színcsökkentési optimalizáló rendszert például GIF formátumban használják.

Adatcsökkentés (tömörítés)

A tömörítés olyan technika, amely lehetővé teszi a fájl méretének csökkentését matematikai folyamatok révén, megkönnyítve ezáltal a hálózaton keresztüli átvitelüket vagy bármely más adathordozón történő tárolást.