Diskuze: Jak je uložený obrázek?
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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
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í.
Zobrazeno 3 zpráv z 3.