au: vitas (šnek) matfyz (tečka) cz
Příkad: Eva a Mája
usage: piart [-l img-list(=list)] [-d indir(=png24x18)] [-i inpng(=in.png)] [-o output w/o ext (=out)] [-b big-dir(=png640x480)] [-x N(=4)] [-y N(=3)] [-u] unique (try not repeat) [-p] do one big png [-B N] border size (=1) [-m img] result must have this img (=none)
Vstupni obrazky jsou v adreari png24x18 (-d), jejich seznam je v souboru list (-l), velke ekvilenty jsou v adresari png640x480 (-b) (vubec se nepouzivaji, jen je na ne odkazovano v .html). Nazev vystupu je out (-o), pro konkretni soubory je pripojena prislusna pripona (out.png popr. out.html).
Misto html se spoustou obrazku se muze vygenerovat jeden .png s jednim .html ktery zajistuje klikabilnost (-p).
Cerna mrizka se da potlacit nastavenim okraje na 0 (-b).
Je mozne vynutit, aby vysledek obsahoval nejaky konkretni maly obrazek, typicky ten obrazek, ktery zrovna mozaikujeme (-m).
Maly obrazek se deli na 4x3 podobrazky (-x, -y). Tyto podobrazky se pak odpovidaji jednomu pixelu vstupniho obrazku (-i). Deleni musi byt delitelem velikosti maleho obrazku. Velikost vysledneho obrazku tedy zavisi na velikosti vstupniho obrazku a na deleni malych obrazku.
Algoritmus vybira fotku s nejmensi chybou, pricemz chyba je suma ctvercu rozdilu prumernych barvev v podobrazku od ciloveho pixelu.
Trosku horsi (a dele se pocita), ale o to je zajimavejsi vysledek: kdyz se zakaze opakovani obrazku (-u). V kazdem kole se od tech nejlepsich obrazku vybere jejich nejlepsi pozice. V dalsich kolech uz se tyto nezucastnuji (ani obrazky ani pozice). To ma tu nevyhodu, ze nakonec tam nejake duplikaty precijen zustanou a ty co zustanou jsou ty horsi varianty. To jeste trosku propracuji. Mozna.
Fotku pozadovanych rozmeru ziskame z originalu (prepokladame ze fotka je jiz 3:4.
$ convert --geometry 256x256 orig.jpg in.png
Jine velikosti malych obrazku:
$ mkdir png32x24 $ TO=32x24;for i in png640x480/*.png ; do ii=png$TO/${i#png640x480/}; echo $i; echo convert -geometry $TO $i $ii; done
Vsechny fotky z pikomatu jsou prevedeny na 640x480 timto zpusobem: (nejprve se zmensi (pri zachovani pomeru) tak, aby se jim dal jen tesne vepsat 640x480 a ten se pak vyrizne z prostredka). Tim se zamozrejme zmrsi fotky typu portrait. Ale coz.
$ ./do-sq.sh
(v souboru SEZNAM=seznam-fotek.txt jsou cesty k fotkam)