Portál AbcLinuxu, 5. května 2025 21:50
Pomoci příkazu convert upravuji velikost obrázků, typ souboru a jiné věci, ale teď jsem potřeboval také nastavit kompresní poměr. V manualových stránkách jsem našel parametr quality, ale nenašel jsem tam, jakým stylem se tam zadává hodnota k tomu parametru. Zatím se domnívám:
Mám-li vyrobit soubor typu JPEG, tak se ta hodnota pohybuje 0 až 100, přičemž čím vyšší číslo, tím menší komprese a vyšší kvalita.
Mám-li vyrobit soubor typu PNG, tak se ta hodnota pohybuje 0 až 9, přičemž čím vyšší číslo, tím větší komprese a nižší kvalita.
Nebo je tomu jinak? Vycházel jsem z hodnot, které nabízí program Gimp při ukládání.
Mám-li vyrobit soubor typu JPEG, tak se ta hodnota pohybuje 0 až 100, přičemž čím vyšší číslo, tím menší komprese a vyšší kvalita.
Ano, ale AFAIK neexistuje nějaká univerzální škála, takže "90" v jednom programu nemusí nutně znamenat totéž co "90" v jiném.
Mám-li vyrobit soubor typu PNG, tak se ta hodnota pohybuje 0 až 9, přičemž čím vyšší číslo, tím větší komprese a nižší kvalita.
Formát PNG jako takový je bezztrátový, ke ztrátě informace dochází jen konverzí na paletu barev omezené velikosti. Vyšší úroveň komprese by se tak měla projevit jen na velikosti výsledného souboru a časových a paměťových nárocích na konverzi.
convert
defaultně vytvářel soubory s 16-bitovou barevnou hloubkou, takže bylo potřeba přidávat "-depth 8
", aby vznikl rozumně použitelný soubor. (Ale nevím, jestli to později zase nezměnili zpátky.)
Obecně - na fotky a obrázky s barevnými přechody použij formát JPG a na grafiku, kde jsou barevné plochy/čáry stejnou barvou (tipicky např. snímky obrazovky) použij formát PNG (nebo GIF).
PNG už je dnes podporováno dobře, dříve byly (dřívější w.explorer - ještě na XPčkách) problémy s (polo)průhledností a pod., tam pak bylo potřeba použít formát GIF (který ale má omezení - umí pouze plnou průhlednost a umí méně barev, ale komatibilita byla dříve lepší). Vždy záleží jaká kvalita je pro tebe ještě přijatelná a snažíš se o co nejmenší velikost souboru, což jde proti sobě.
Jinak platí, že čím méně bitů tím menší soubor, ale menší počet barev které lze zobrazit/zachovat v obrázku (nižší kvalita).
To jsou dvě různé věci. Jedna je počet barev v paletě, druhá je bitová hloubka barevných odstínů v té paletě. Poslední odstavec vaší odpovědi se týká spíš té první, ale tazatel se IMHO ptal spíš na tu druhou (vzhledem k možnostem 8 a 16 bitů).
Pokud se bavíme o formátech pracujících s indexovanými barvami, je velmi nepravděpodobné, že by nároky na barevnou věrnost byly takové, aby bylo potřeba mít 16-bitovou hloubku, tím spíš, že většina uživatelů stejně nedisponuje výstupním zařízením, kde by rozdíl vůbec šel poznat. (A bavíme se o PNG, takže jemné barevné přechody taky nebudou moc typické.)
Poznámka: s vlivem barevné hloubky na velikost souboru je to trochu složitější. Zatímco velikost palety ovlivňuje velikost souboru celkem přímo, protože má vliv na množství dat reprezentujících každý pixel, barevná hloubka ovlivní jen velikost palety. Takže třeba u velkého obrázku s relativně málo barvami v paletě (např. screenshot okna často vypadá rozumně i třeba s 64 barvami) je ten rozdíl docela malý, ale u malé ikonky to může být hodně znát.
Děkuji za doplnění.
Samozřejmě souhlasím se vším co jste napsal. 8bitové barvy budou pro tazatele zřejmě dostačující. Jen pro tazatele ještě znovu vypíchnu, že velikost PNG souborů lze velmi zmenšit omezením barev palety (samozřejmě na úkor kvality - obzvlášť u těch barevných přechodů, fotek atp. u kterých to není vhodná metoda) - což z mého příspěvku nebylo vůbec jasné (za což se omlouvám).
Jen jsem chtěl připomenout, co tu ještě nezaznělo - že v závislosti na typu obrázků je dobré vybrat formát a možnosti zmenšení (např též možnosti omezení barevné palety u PNG formátu).
file -k soubor
, mi řekne pendrek, stejně tak klik na vlastnosti souboru.
identify 2015-08-06\ 11.29.34.jpg 2015-08-06 11.29.34.jpg JPEG 2592x1936 2592x1936+0+0 8-bit sRGB 1.947MB 0.870u 0:00.869jeste se muze hodit odhad kvality v jpg:
identify -format '%Q' 2015-08-06\ 11.29.34.jpg 96identify je ze stejnyho baliku, jako convert, tedy imagemagick
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.