Autor Zpráva
Milan1236000
Profil
Zdravím,
zatím tento mi vždy sníží velikosti obrázků o nejvíc bez ztráty kvality. Na jakém principu to funguje?
juriad
Profil
Máš to napsané přímo na hlavní stránce: „Because the number of colors is reduced, 24-bit PNG files can be converted to much smaller 8-bit indexed color images“.
V krátkosti, stačí na uložení každého pixelu jen jeden byte namísto tří.
Alphard
Profil
Kdyby to nebylo zřejmé z [#2] juriad, nejde o bezeztrátovou kompresi. Původní obrázek nemůže přesně obnoven (ale zahozené informace jsou tradičně vybírány co nejinteligentněji).
Milan1236000
Profil
juriad:
No, to je právě to. Já už ty obrázky v 8-bit (někdy dokonce v 4-bit) mám, takže co na tom ještě optimalizuje?

Alphard:
Takže smaže metadata a to je vše?
Chamurappi
Profil
Reaguji na Milana1236000:
bezztrátová komprese obrázků“ … „bez ztráty kvality
To čteš nějak špatně, já tam vidím advanced lossy compression, tedy pokročilá ztrátová komprese. V závislosti na tom, jak vypadá zdrojový obrázek, můžou být ztráty více či méně vidět, ale nepochybně tam jsou, pokud bylo použito víc jak 256 barev (= unikátních kombinací RGBA).

Existují nástroje na skutečnou bezztrátovou kompresi PNG, které obvykle nedosahují až tak zázračných výsledků, a ty fungují tak, že jednak vyházejí všelijaká metadata a jednak zkouší metodou pokus-omyl komprimovat obrazová data s různými kompresními parametry a zkoumají, které vyjdou nejlépe. Běžný grafický editor se s tím tolik nepáře, protože chce ukládat rychle, takže si tipne, která sestava parametrů by mohla vyjít nějak dobře.
1Pupik1989
Profil
Pokud se hodně barev opakuje, pak se v PNG dá vytvořit paleta. Poté je na scanline jen 8 bitů na barvu, protože je to index v paletě nikoliv barva samotná. Kdyby si měl jen 8 bitů na barvu, tak je obrázek černobílý, respektive má 256 odstínů šedi.

V PNG je hodně možností, jak snížit velikost při ukládání. Třeba pngout je na to pěkná hračka.

1. Výběr uložení scanline (line/interlaced)
2. Deflate (bez komprese/lz77/huffman + lz77)
3. Nastavení počtů bitů/paleta
4. Nastavení barvy jako transparentní (pokud je třeba bílá průhledná)

Bude toho určitě víc, na co si nevzpomenu.
Milan1236000
Profil
Chamurappi:
Aha, tak to jo. Díky.

1Pupik1989:
Díky za tip, vyzkouším.
Martin2
Profil *
U PNG konkrétně lze (neztrátově) ušetřit data důsledným využitím všech možností, které formát poskytuje. Například kombinaci sestavení 8-bitové palety s 8-bitovým alpha kanálem Photoshop nenabízí, přestože je plně funkční a zcela v souladu s normou PNG.

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0