Dne 20.3.2012 13:09, Jakub Vojáček napsal(a):
> Dobrý den,
> 
> pracuji na parseru PNG obrázků a narazil jsem na pár problémů s filtry. 
> Postouji podle návodu http://www.root.cz/clanky/radkove-filtry-v-png/ 
> a zasekl jsem se hned u prvního (sub) filtru. Nevím, jak mám reagovat to,
> když mi výsledek po odečtení podteče (například 128-255).

To moc nechápu. Pokud PNG parsuješ, tj. čteš, tak neodečítáš, ale naopak zpátky 
přičítáš.
Jinak je to ale klasická osmibitová bezznaménková aritmetika, tj. modulo 256, 
to máš IMHO správně.

> RGB nemůže mít záporné hodnoty, mám tedy na výsledek zavolat funkci abs? 
> Podobný problém nastává,
> pokud výsledek přeteče (je vyšší než 255). Mám vše vyšší než 255 
> zaokrouhlovat na 255? Nebo mám
> použít modulo 256? Ani jedno z vyše uvedených mi myslím nefunguje správně, 
> protože složky RGB by
> měly nabývat pouze hodnot 0, 128, 255 (jedná se o interpet jazkyka 
> brainloller) a mně tam vznikají
> složky jako 1, 254, 127, ...

možná spíš od sebe odečítáš špatná čísla :-)

> Také bych měl dotaz na čtvrtý filtr (filtr s paeth prediktorem). Mají se tam 
> porovnávat pixely, 
> ale jediný způsob, na který jsem přišel, jak porovnat pixely je sečíst 
> všechny složky rgb (self.sum)
> a porovnávat je. Je to tak správně?

Nenech se zmást, všechny filtry pracují na úrovni odpovídajících si bajtů, 
nikoli celých pixelů (pokud
to náhodou není 8bitový čb nebo 8bitový s paletou, kdy bajt = pixel). 
Odpovídajícími míním, že se
např. odečítá bajt zelené složky od dalšího bajtu zelené složky ap.

-- 
Zdraví,
Michal Molhanec
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem