Ezt igazából Karácsony előttre terveztem leírni, de nem sikerült összehozni. Így Karácsonyra már nem lesz segítségére senkinek - legalábbis az idén nem -, de úgy hiszem, hogy születés- vagy névnapra szintén szép ajándék lehet a családban.
De mi is az a mozaikkép?
Amikor van egy nagyobb képünk, amit szeretnénk átalakítani úgy, hogy a már meglévő képeinkből mozaikszerűen kirakva kapjuk vissza.
Előkészültetek
Először is szükség van sok képre. Akkor van szerencsénk, ha nagyon sok féle, és gazdag színvilágú képeink vannak, melyeken sok az olyan szín, ami dominál. Ilyen képekből válasszunk ki sokat, és helyezzük őket külön egy könyvtárba.
Nagyjából 100-200 képnél többre nem lesz szükségünk, főleg akkor nem, ha a képek színvilága és fényereje nagyon különböző, és sikerül a színskála minden részéről találnunk megfelelőt.
A könyvtárstruktúra egyszerű: van egy alapkönyvtár, ebben lesz a főkép és az eredény. Egy alkönyvtár a kiindulási képeknek (kiindul), egy alkönyvtár a négyzetesített képeknek (negyzet), és végül egy alkönyvtár a mozaikdarabkáknak (mozaik).
Képek négyzetesítése
A mozaikkészítő program négyzet alakú képekkel dolgozik. A fényképeknek pedig eléggé nem elhanyagolható tulajdonsága, hogy téglalap alakúak. Emiatt három dolgot kell tennünk minden képpel:
- Egy adott méretre zsugorítani az összes képet
- Levágni a két széléből, hogy négyzet alakú legyen
- Beforgatni úgy, hogy az álló képek is jól láthatóak legyenek
Az egyes pontban gyakorlatilag azt kell tennünk, hogy a képeket egy olyan méretre alakítsuk, amely megfelel a jelenlegi képaránynak, és minden jelenlegi képnél kisebb (hogy ne kelljen nagyítani). Ez a példában 320x240 lesz, mivel minden felhasznált kép 4/3-as képarányú.
A második pontban a kép közepéről kell kivágni egy négyzetet, vagyis a bal felső saroktól 40 pixelnyire jobbra (és 0 pixelnyire lefelé) kell kiemelni a 240x240 pixeles képrészt.
A forgatás nehéz dolog, mert valamelyik digitális gép elhelyezi a képfájlban a forgatási információt, valamelyik azonban nem. Így az automatikus forgatás csak azoknál a képeknél működik, amelyeknél az információt a fényképező beletette. Ha marad olyan kép, amely nem fordult el a jó irányba, azt utólag egyesével nekünk kell megtenni (én ezt kihagytam).
A kiindul könyvtárban kell kiadni az alábbi parancsot, hogy a negyzet mappába létrejöjjenek a megfelelő képek:
find -iname '*.jpg' -exec convert {} -resize 320x240-crop 240x240+40+0 -auto-orient ../negyzet/{} \;
Ez a parancs a képek mennyiségétől függően sokáig is eltarthat, várjuk ki türelemmel a befejezést.
Mozaikkockák létrehozása
A mozaikkockák alapesetben 128x128 pixel méretűek lesznek, ám egyes esetekben lehet őket más mérettel is használni (pl. ha a létrehozandó kép túl nagy vagy túl kis méretben lesz kinyomtatva).
Ha az eredeti kép megfelelően nagy (8-10 megapixel nagyságú, vagy nagyobb), akkor célszerű a mozaikkockákat az alapértelmezett méreten használni, vagy kicsinyíteni (64x64 vagy 32x32-es méretre), de arra mindig ügyeljünk, hogy ha túl nagy lesz a nyomtatási felbontás (pl. 600DPI, akkor a 64x64-es méretnél ne legyen kisebb, mert nem lesznek felismerhetőek a mozaikképek).
A példában én az alapértelmezett, 128x128-as felbontást választottam, mert a kiválasztott kép túl kicsi, amin elég sokat kell nagyítani, de még így is túl kicsi marad.
Az alábbi parancsot kell kiadni az alapkönyvtárban, hogy a négyzetes képekből a mozaikkészítő létre hozza a mozaik készletet és adatbázist (a negyzet mappa tartalmát olvassa fel, és az adatbázis a mozaik mappába készül):
metapixel-prepare -r negyzet mozaik
Készüljön a kép
Még nem ejtettem szót a kiválasztott képről. Azt a klépet lehet jól felismerhetően mozaikosítani, amely nem tartalmaz olyan részeket, ahol sok, apró és eltérő színes terület van (pl. egy futballstation lelátója nem lesz megfelelő alap ahhoz, hogy jó mozaikképet csináljuk). A jó képen van valami fő objektum középen (mint pl. a példában egy arc), vagy egy kedvenc tárgy, háziállat, stb.
Továbbá a kép nem homályos, megfelelően kontrasztos, de nem túl élénk színekkel - a példában jól látszik, hogy a túlzottan élénk színeket nem lehet jól mozaikosítani, ha nincs hozzá megfelelő képanyagunk.
Ha a kép mérete túl kicsi (a példa esetében egy megapixel), de eléggé kontrasztos, akkor lehet nagyítani (a --scale=szorzó) paraméterrel, de bizonyos képek esetén ez homályosodáshoz vezethet, és az eredményre rossz hatással lehet. Én 5-ös nagyítási faktort használtam.
Az alapkönyvtárban elhelyezkedő fő képet (arc.jpg) az alábbi - szintén az alapkönyvtárban kiadott - paranccsal lehet mozaikosítani (és az ereményt az arc_mozaik.jpg fájlba helyezni):
metapixel --scale=5 --metapixel arc.jpg arc_mozaik.jpg --library mozaik
Az eredeti képek megtekintéséhez a fenti mintaképekre (Kiinduló kép; Eredmény kép) kell kattintani.
Természetesen egy asztali Linux operációs rendszernek a fent említett megoldások a részét képezik, a szükséges programok a gyártó szoftvertárából beszerezhetőek.