Come creare GIF animate con dieci righe di Python

GIF animate in Python

Oggi impareremo come creare immagini GIF animate utilizzando una manciata di righe di Python ed una libreria open per la gestione delle GIF.

Uno degli aspetti più interessanti della grafica al computer è la possibilità di creare animazioni da foto time-lapse, da disegni e vignette personali, da immagini in formato gif che presentino le posizioni di un soggetto in una sequenza temporale.

Una volta si usavano cartoncini sui quali venivano disegnati gli oggetti da muovere spostandoli di pochi millimetri alla volta, e poi leggendoli piegando un angolo del mazzetto e facendo scorrere le immagini sotto il pollice.

Oggi la tecnologia ci permette un impiego decisamente più avanzato: vedremo che con poche righe di Python e qualche immagine GIF potremo creare il nostro filmato personale.
Buon divertimento!

Creiamo una base di immagini

Per prima cosa occorrerà creare una base di immagini compatibili per il nostro lavoro. Porttemo utilizzare un qualsiasi software per la creazione di immagini GIF, o i nostri articoli e video sull’’uso del time lapse con PC o Raspberry PI riportati nella sezione documentazione. Per il nostro esempio utilizzeremo il gattino di Scratch, e creeremo una sequenza animata che simulerà la camminata.

GIF animate in Python

Animare le immagini

Ed eccoci al programma finale: si tratta di un programmino di una decina di righe più una manciata di commenti, L’uso prevede la chiamata dell’interprete Python, Il nome del programma e la sequenza di immagini che dobbiamo renderizzare con l’animazione. Importiamo il modulo sys, che ci servirà per gestire la linea di comando, e dal modulo PIL importiamo la libreria di funzione image; creiamo quindi una lista che chiameremo Images e per ciascun elemento nella riga di comando, a partire dal primo, aggiungeremo un oggetto file relativo alla posizione dell’argomento che stiamo leggendo dalla riga di comando3

Queste immagini verranno accodate all’interno della nostra sequenza di immagini Images. Alla fine procederemo con il metodo Images[0].Save col nome costume.gif, chiedendo di salvare tutta la sequenza delle immagini. Nell’esempio abbiamo inserito solo due immagini, sostanzialmente abbiamo visto il gattino che si che si muove quindi basta image[0] e image[1]. Nel caso avessimo più immagini, aggiungeremo alla sequenza da salvare image[2], image[3] e così via.

La chiave duration rappresenta la durata del loop di proiezione Nel nostro caso 5 frame per secondo in quanto un frame richiede 200 illisecondi. loop rappresenta il numero di volte che si si desidera replicare l’animazione: Zero significa per sempre, 1 significa replica una sola volta 2 significa replica due volte, poi fermati, e così via.

FAcendo partire il programma viene creato il file costumes gif che contiene l’animazione.

A questo punto non ci resta altro che creare la nostra serie di gif da mettere in sequenza su un qualunque tipo di programma di sequenziatore, o con la macchina fotografica,e creare  automaticamente un contenitore animato unico che potremo spostare dovunque ci piaccia per i nostri scopi sua nostra pagine web o semplicemente sui nostri Social.

 

Link utili:

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.