Diskuze: Jak je uložený obrázek?

Grafika Grafika a design Jak je uložený obrázek?

Avatar
*smoky*
Člen
Avatar
*smoky*:

Nazdar,

vysvětlil by mi prosím někdo, jak funguje ukládání obrázku? Např. pokud mám obrázek 100px x 100px ve formátu .png, jak vypadá jeho uložený část, tudíž určitý kód?

Odpovědět 9.2.2014 19:02
Pít, žít, umřít.
Avatar
hanpari
Redaktor
Avatar
hanpari:

1/ PNG je komprimovaný formát, takže ti jeho binární zápis nic nenapoví.
2/ Doporučuji ti proto, abys zkoumal bitmapu.
3/ Ulož si obrázek, který chceš zkoumat a ulož ho jako 24-bitovou bitmapu (bmp).
4/ Otevři bmp v notepadu a zjistíš, že tudy cesta nevede.
5/ Musíš použít hexadecimální editor (např. Frhed).
6/ Ten na tebe vyplivne naprosto nesrozumitelný guláš čísel a písmen.
7/ Je to zápis bajtů v hexadecimální (šestnáctkové) soustavě).
8/ Gratuluji, to je to cos hledal :)

Soubor BMP se pak skládá ze dvou základních částí: z hlavičky a z vlastních obrazových dat.
Specifikaci hlavičky si můžeš najít na internetu.

U 24bitové bitmapy obrazová data tvoří trojice bajtů (čísel v rozsahu od 0-255), které se značí jako RGB.
Pořadí by sis měl přečíst v hlavičce.Tyto tři bajty tvoří 1 pixel, čili obrazovkový bod:

RGB(00,00,00) je černý bod, zatímco RGB(ff, ff, ff) je bílý bod. Všechno mezitím jsou ostatní barvy :)
FF je v hexadecimální zápis čísla 255.

Doporučuji ti trochu experimentovat. Pokud by ti nebylo něco jasné, tak se zeptej :)

 
Nahoru Odpovědět  +1 13.2.2014 14:31
Avatar
1Pupik1989
Neregistrovaný
Avatar
1Pupik1989:

PNG (RFC-2083) ani tak složité není. Horší je chunk IDAT. Ten je v Zlib formátu (RFC-1950) a data v něm jsou komprimovaná pomocí algoritmu DEFLATE (RFC-1951). Až data dokážeš rozluštit, tak tě čeká čtení scanline a filtry.
Při každém průchodu je index filtru (0 = none, 1 = Sub, 2 = Up, 3 = Average a 4 = Paeth). Navíc má PNG dvě možnosti ukládání dat. Buď řádkově, nebo progresivně (Adam7 algoritmus).

Rozluštit to je celkem běh na dlouhou trať. Každopdáně na blbnutí v binární soustavě skoro ideální.

 
Nahoru Odpovědět 13.2.2014 14:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.