PNG-Frankensteiner 3 Vít Čondák 2017-2023 Transformátor obrázků podle podobnosti dvou vzorových obrázků. Redukovaná verze určená pro Tinterr, která používá pouze černobílé vzory, čili jako by byl použit bývalý parametr G. Usage: png-frank3 png1/upng png2 [png3] outputpng/upng [AFIMT] A - embedd cummulative errors to alpha channel F - faster (less iterations) I - output resolution is based on F arguments M - match levels of input images before calculating translations (only with G) T - shorter translations (less mipmaps) Pokud se počítá přesun, tak kladná návratová hodnota programu obsahuje vypočítanou chybu na jeden pixel. Záporné návratové hodnoty znamenají chyby při otevírání souborů a podobně: -1 nebyly zadány žádné parametry -2 nenalezeno zadané .upng -3 nenalezen obrázek .png Příklady použití png-frank2 vzor1.png vzor2.png zdroj.png cíl.png Transformuje zdroj.png na cíl.png pomocí transformace definované soubory vzor1.png a vzor2.png png-frank2 vzor1.png vzor2.png transformace.upng Spočítá tranformaci z dvojice vzor1.png a vzor2.png a uloží ji do souboru transformace.upng png-frank2 vzor1.png vzor2.png transformace.upng tfi Spočítá tranformaci z dvojice vzor1.png a vzor2.png a uloží ji do souboru transformace.upng. Při výpočtu použije poloviční rozlišení a poloviční vzdálenost pro hledání podobných oblastí. png-frank2 transformace.upng zdroj.png cíl.png Transformuje zdroj.png na cíl.png pomocí transformace ze souboru transformace.tpng Historie 3.197 2023-04-11 * opravena chyba v MatchLevels s poslední směrnicí 3.196 2023-03-31 * opravena chyba při inicializaci pole za pravým okrajem obrázku 3.195 2023-03-30 * změny ve spojování dvou UPNG (neověřeno) * upřesněny poznámky o potenciálních optimalizacích 3.194 2023-03-30 * přidány mezičasy ve větvi s UPNG * mikrooptimalizace při aplikaci translations (ale stejně zabírá jen asi 5 ms) 3.193 2023-03-29 * drobná oprava v inicializaci polí bez použití depths 3.192 2023-03-28 [361 ms] * malá optimalizace v AdjustTranslation 3.191 2023-03-28 * první mezičas rozdělen na Loading a Preparation 3.19 2023-03-17 [366 ms] * optimalizace v GenerateMipmapsGray (nekompletní byla paradoxně trochu rychlejší) 3.18 2023-03-17 [370 ms] * obrazové mipmapy už jsou taky uloženy v 1D polích (-135 ms!) (asi tam jsou stále drobnosti, které by se daly vylepšit) 3.17 2023-03-16 [505 ms] * slepá vývojová větev - kompilátor to zřejmě optimalizuje jinak a lépe 3.16 2023-03-16 [475 ms] * v AdjustTranslation zkratky mmXYmi a další drobnosti 3.15 2023-03-16 [535 ms] * převážně optimalizace v AdjustTranslation (proměné y přesunuty do vyšší smyčky) (mimochodem výpočet teď zabírá cca 60 % celkového času) 3.14 2023-03-16 [542 ms] * drobné optimalizace v inicializaci translation maps (-15 ms) 3.13 2023-03-15 [557 ms] * opravena chyba z 3.12 (mxsize / 2 -> tsizes[mi + 1].Width) 3.12 2023-03-15 [550 ms] * translations předělány na 1D pole (-50 ms) ! v upng jsou proti 3.11 nějaké menší anomálie 3.11 2023-03-15 [597 ms] * drobná optimalizace MergeAndConvertErrorsToReliability (-20 ms) 3.10 2023-03-14 (75 kB) [619 ms] * opraveno exportování chyb v alfa kanálu (zřejmě z 3.05) * define pro přepínání 8-12-12 a 12-12-8 3.09 2023-03-13 (74 kB) [601 ms] * čistka TPNG funkcí * vyhozen parametr E (v podstatě je s UPNG zapnutý stále) ! alfa v transformované masce p použití upng je rozbitá - ale kde to vzníká? 3.08 2023-03-13 * cvičně prohozeno pořadí položek v UPNG (trochu menší soubory?) 3.07 2023-03-13 * upng se používá pro načítání i export 3.06 2023-03-13 * tpng+e8 -> upng * .upng je o cca 20 % větší než samostatné .tpng+e8, ale je to rychlejší o cca 60 ms 3.05 2023-03-12 * zredukovaná část pro A 3.04 2023-03-12 - znovu eliminována proměnná errinherit (ok) ! pokud vyhodím nebo vypnu embedding errors to alpha, tak je zle používá se pro generování morfů z tpng: startInfo.Arguments = fnametpng + _ + fname1 + _ + fname2 + " a"; // + " w"; // a = embedd err to alpha 3.03 2023-03-12 * hybrid 3.01 a 3.02 (ok) 3.02 2023-03-12 (79 kB) - eliminována proměnná errinherit - CreateMipmapGray - embedding errors to alpha - cummerror ! bug: v Tinterru byla po výpočtu vždy nulová chyba 3.01 2023-03-12 * pro výpočty se používá zelená složka 3.00 2023-03-11 (84 kB) - první iterace s očesáním nejzjevnějších zbytečnosti * upraveny výpisy času (EOF)