mslgen - hromadná úprava obrázků programem conjure
Petr Wiedemann, 12. srpen 2009
V článku Hromadné zmenšení velikosti fotek je uveden postup, jak v dávkovém souboru použít program convert z knihovny ImageMagick pro hromadnou změnu rozměrů obrázků. Jednoduchosti a eleganci shellu se nic nevyrovná, ale přeci jen má toto řešení jednu nevýhodu. Nedokáže pracovat se soubory, které mají v názvu diakritiku. Naštěstí je součástí ImageMagick i program conjure. Program conjure se spouští s parametrem, kterým je název souboru v jazyce Magick Scripting Language (MSL). Tento soubor je ve formátu XML a obsahuje instrukce, jak pracovat s obrázky. Například: otevři soubor, uprav jeho rozměry, nastav barevnou paletu a ulož s novým názvem. Názvy souborů v tomto souboru již mohou obsahovat diakritiku.
Abychom mohli conjure využít, musíme si nejprve připravit XML soubor, kterému bude conjure rozumět. Pro tento účel jsem napsal program mslgen, který dokáže vyhledat obrázky v adresáři, zobrazit jejich náhledy a nastavit parametry pro změnu velikosti, výsledný formát obrázků a masku, s jakou budou výsledné soubory pojmenovány. Samotný program mslgen obrázky nemění. Pouze vytvoří MSL soubor, který potom předá programu conjure.
Program mslgen je napsán v C# a pro spuštění potřebuje nainstalovaný Microsoft .NET Framework ve verzi 3.5. Pro změnu obrázků je nutné mít v počítači i knihovnu ImageMagick.
Instalace mslgen
Prvním krokem pro instalaci programu bude stažení ImageMagick. Navštivte stránku http://www.imagemagick.org/script/binary-releases.php#windows a stáhněte archív ImageMagick-X.Y.Z-Q16-windows.zip. Písmena XYZ označují číslo verze. V čase psaní tohoto článku je aktuální verze ImageMagick-6.5.4-Q16-windows.zip. Obsah tohoto archívu rozbalte někam na disk.
Dalším krokem je instalace programu mslgen. Můžete si vybrat ze 2 způsobů.
První způsob je stažení souboru https://www.pdynet.net/files/mslgen/setup.exe a jeho spuštění. Tento instalační soubor při spuštění zkontroluje, jestli máte v počítači nainstalován .NET Framework správné verze a pokud tomu tak není, nabídne Vám možnost jeho instalace. Program mslgen je potom nainstalován a dostupný přes Start menu.
Druhý způsob je stažení archívu https://www.pdynet.net/files/mslgen/mslgen_1.2.zip, který obsahuje 2 soubory (mslgen.exe a mslgen.exe.config). Obsah tohoto archívu je možné opět kamkoliv rozbalit a spustit soubor mslgen.exe.
Pro zájemce je na adrese https://www.pdynet.net/files/mslgen/mslgen_src_1.2.zip celý projekt se zdrojovými soubory.
První spuštění programu
Při 1. spuštění programu mslgen musíme nastavit cestu k programu conjure. Na obrázku je uvedená cesta D:\ImageMagick-6.5.4-9\conjure.exe. Pro výběr umístění souboru conjure.exe stiskněte tlačítko se 3 tečkami v části pojmenované Cesta k programu conjure a vyhledejte soubor conjure.exe v adresáři, kam jste rozbalili ImageMagick. Tento krok je nutný pouze pro 1. spuštění programu. Při jeho ukončení si mslgen cestu k programu conjure uloží.
Změna rozměrů obrázků
Po spuštění programu nejprve v poli Vyhledat obrázky typů vyberte formáty, které chcete vyhledat. Potom se rozhodněte, jestli chcete, aby mslgen hledal vybrané formáty obrázků jen v adresáři, který vyberete a nebo i v jeho podadresářích. Podle toho zaškrtněte checkbox Vyhledat obrázky v podadresářích. Pro vyhledání samotných obrázků stiskněte tlačítko se 3 tečkami v poli Adresář s obrázky. Zobrazí se dialog pro výběr adresáře. Po výběru adresáře vyhledá program obrázky a začne s generováním náhledů. Generování náhledů je možné zastavit stiskem červeného tlačítka v pravé části statusbaru.
V části Uložit obrázky jako vyberte formát, ve kterém budou obrázky uloženy. Výchozí hodnotou je volba Ponechat formát, kdy bude obrázek uložen ve stejném formátu. Ostatní volby přinutí conjure převést obrázek na vybraný typ. Hodnota v poli Kvalita pro JPG má význam pro soubory ukládané ve formátu JPEG. Číslo může být v rozsahu 1 - 100.
Do oblasti pojmenované Max. rozměry obrázků zadejte rozměry výsledných obrázků. Hodnoty odpovídají šířce a výšce. Pokud vyplníte obě hodnoty a necháte aktivní přepínač px, bude výsledný obrázek zmenšen tak, že jeho delší strana bude mít zadanou hodnotu a druhý rozměr bude dopočítán, aby byl zachován poměr stran. V případě, že vyplníte pouze jeden rozměr, bude mít výsledný obrázek právě tento rozměr a druhá strana bude opět dopočítána.
Další možností je změna velikosti definovaná procenty z originálních rozměrů. Pro tento způsob aktivujte přepínač označený % a do prvního pole napište hodnotu, kolik procent mají mít nové rozměry.
Příklad:
- 600 x 600 px - obrázky budou mít delší stranu dlouhou 600 bodů a druhý rozměr bude dopočítán tak, aby zůstal zachován poměr stran.
- 600 x 0 px - obrázky budou široké 600 bodů a výška bude dopočítána.
- 0 x 600 px - obrázky budou vysoké 600 bodů a šířka bude dopočítána.
- 20 x 0 % - oba rozměry budou mít 20% z původní velikosti.
- 0 x 0 px - velikosti obrázků budou zachovány. Pro tento zápis je nutné vybrat formát souboru v poli Uložit obrázky jako. Tento zápis můžete použít, pokud chcete pouze převést obrázky z jednoho formátu do jiného.
Checkbox Uložit v paletě RGB přinutí conjure, aby výsledné obrázky byly uloženy v paletě RGB. V opačném případě je paleta stejná, jako u originálu.
Pojmenování cílových obrázků
V oblasti pojmenované Maska pro uložení souboru se definuje název cílových obrázků. V tomto poli musí být vždy uvedeny proměnné [:NAME:] a [:EXT:]. Proměnná [:NAME:] odpovídá jménu souboru bez jeho přípony a adresáře, kde je uložený. Naopak proměnná [:EXT:] odpovídá příponě souboru včetně tečky. Celá maska odpovídá relativnímu umístění vůči adresáři, kde je uložen originální soubor. Pro následující příklady předpokládejme, že originální soubor je C:\obrazky\fotka01.jpg a nechceme měnit formát souboru.
Formát masky:
- [:NAME:]-mini[:EXT:] - obrázek bude uložen jako C:\obrazky\fotka01-mini.jpg.
- Thumb_[:NAME:][:EXT:] - obrázek bude uložen jako C:\obrazky\Thumb_fotka01.jpg.
- nahledy\[:NAME:][:EXT:] - obrázek bude uložen jako C:\obrazky\nahledy\fotka01.jpg.
- d1\d2\tb_[:NAME:]-mini[:EXT:] - obrázek bude uložen jako C:\obrazky\d1\d2\tb_fotka01-mini.jpg.
Spuštění zpracování obrázků
Po nastavení všech předchozích parametrů spustíte konverzi obrázků tlačítkem Spustit conjure. Po jeho stisknutí zobrazí mslgen dialog pro uložení MSL souboru. Tady pozor. V názvu souboru a celé jeho cestě NESMÍ být diakritika, jinak tento soubor conjure nenajde. Po uložení souboru je spuštěn program conjure v příkazovém řádku.
Pokud v názvu nebo cestě MSL souboru použijete diakritiku, skončíte s chybou conjure.exe: Extra content at the end of the document.