Tempo fa avevo scritto un post su convert per indicarne le semplici funzioni che permettevano di ridimensionare le immagini.
Oramai il procedimento è automatico grazie a scriptini tipo

# for ARG in immagini_* ; do convert $ARG -thumbnail 150x `echo $ARG | sed s/jpg/thumb\.jpg/`; done

che da riga di comando mi permettono di creare tutte le thumbnail di cui ho bisogno e poi upparle comodamente col client ftp.


Complice una guidina di Toonik, mi sono ri-cimentato nel manipolare un po’ su ImageMagick, e ho avuto modo così di creare le mie prime gif animate. :)

serie discretaPer creare slide di una serie di foto:

# convert -delay 100 serie_di_immagini_* animata.gif

L’argomento dell’opzione -delay sono il numero di centesimi di secondo che devono passare fra un’immagine e la seguente della serie.


dissolvenzaUn altro comando stupendo (a mio avviso) è quello che crea una dissolvenza delle immagini. L’effetto è notevole.

# convert -morph 15 -delay 10 serie_di_immagini_*.jpg prima_della_serie.jpg fade.gif

Ammesso che solo questo effetto per me vale il “prezzo del biglietto”, esso richiede un po’ più di studio.
L’opzione -delay come prima delinea l’attesa fra un frame ed un altro – quindi in questo caso andrà tenuto breve per far sì che l’occhio percepisca la transizione fra i vari frame sfumati che -morph crea. (Ricordo che la breakline dell’occhio è di 25 frame per second, come studiato alle medie. :) )
La trasformazione vera e propria è dovuta a -morph che utilizza il numero di interpolazioni indicato (in questo caso 15) per sfumare l’immagine precedente in quella successiva.

Piccolo trucco. Per rendere il loop fra le immagini “continuo”, ho utilizzato un piccolo accorgimento: ripetere la prima immagine in fondo alla serie (come si vede dal mio esempio da riga di comando). Questo è necessario perchè convert ritiene concluso il ciclo all’arrivo dell’ultima immagine, quindi il passaggio dall’ultima alla prima del ciclo successivo sarebbe senza morphing; aggiungendo invece nuovamente l’immagine#1, quando convert arriva all’ultima immagine del ciclo (che in tal senso diventa la penultima), la sfuma nella prima, per poi riavviare il loop.

dissolvenzaInfine, presento un gif animato creato con 100 interpolazioni (-morph 100) e un ritardo di un centesimo di secondo per ognuna di esse (-delay 1). L’occhio non distingue più i frame e l’animazione risulta estremamente fluida. Ovviamente tutto questo sforzo non è necessario, soprattutto in casi in cui le immagini non sono nemmeno molto simili fra di loro (come nel mio esempio).
Si tenga conto inoltre che questa gif con tanti frame pesa 6 mega invece che 1 come la precedente…

Nota. display animazione.gif non mi visualizzava i gif con il ritardo esatto, ma un po’ rallentato. (Non ho indagato sulle ragioni.) I controlli per vedere il lavoro finito li ho fatti con gwenview.



1 Comment to “convert (2)”


  1. SIMOTRONE WEB PAGE » Blog Archive » convert (3) — 27 February 2009 @ 7:34 am

    [...] convert (3) Feb27 27 February 2009, Simotrone @ 7:32 am Ho già parlato in ben 2 occasioni (uno e due) di quello spettacolo che è convert di [...]



Write a comment


You need tologin.

    
SIMOTRONE WEB PAGE is based on WordPress platform, RSS tech , RSS comments design by Gx3.