středa 27. listopadu 2013

Rychlá řádková tvorba fotogalerie

Stává se, že je třeba zveřejnit na internetu album fotografií, čítající někdy jednotky, ale někdy i řadu desítek fotografií k nějakému tématu. Potíž nastane v případě, že zadavatel nechce nebo nemůže respektovat vhodný formát názvů (České znaky a mezery v názvech co běžní uživatelé WINDOWS bezostyšně používají mohou činit problémy.) nebo rozlišení fotografií. Budeme potřebovat také ikony pro náhled přes velmi pomalé připojení a seznam fotografií pro jejich začlenění do zobrazovacího systému. Proč trávit čas zbytečnou činností - úpravou formátu a nevyřešit věc trochu příjemněji? Stačí malý velmi jednoduchý dávkový soubor a všechny úkoly jsou za pár vteřin hotové.

Dávkový soubor mkgallery

#!/bin/bash

if [ "$#" -ne 1 ]
then
    echo "Zadej prefix jako parametr!"
    exit 1
fi
prefix=$1

rename -v 's/\.JPG$/\.jpg/' *.JPG
rename -v 's/\.jpeg$/\.jpg/' *.jpeg
rename -v 's/\.JPEG$/\.jpg/' *.JPEG

IFS=$','
a=1
for i in *.jpg; do
    new=$(printf "$prefix%04d.jpg" ${a})
    mv --verbose "$i" "$new"
    echo $(printf "$prefix%04d;%d" ${a} ${a}) >>pictures.csv
    let a=a+1
done

mogrify -resize 800 *.jpg

for i in *.jpg; do
    cp "$i" "S_$i"; done

mogrify -resize 160 S_*.jpg

exit 0


Jako parametr se zadává řetězec - prefix, který bude spolu s čtyřčíselným indexem tvořit nové názvy souborů fotografií.

Skript postupně provede:
  • Kontrolu, zda je prefix skutečně zadán.
  • Změnu možných přípon souborů JPG, jpeg, JPEG na jpg.
  • Přejmenování všech souborů v původním abecedním pořádku do tvaru prefixXXXX.jpg, kde XXXX je čtyřmístné číslo od 1.
  • Změnu velikosti všech fotografií na rozlišení, kde delší strana má 800 pixelů.
  • Kopii všech fotografií do náhledů s delší stranou 160 pixelů a předponou názvu S_ od slova Scale.
  • Vytvoření souboru pictures.csv pro přímé načítání do zobrazovače. V souboru jsou u fotografií uvedeny formální jména - čísla, které lze ručně snadno přepsat na popisky fotografií zobrazované při jejich prohlížení.
Skript využívá ke své činnosti balík image-magick, konkrétně program mogrify, opravdu velmi výkonný nástroj pro řádkovou práci s obrazem.

Pozor!!! Zkoušet jedině na kopiích fotografií, které jsou uloženy ještě jinde!

Žádné komentáře:

Okomentovat