martedì 6 gennaio 2026

C# Creating an animated GIF Using the Free Magick.NET Component

 

creazione gif

Tramite la libreria gratuita Magick.Net possiamo creare una gif animata, tramite l'utilizzo di due o più immagini di tipo Jpg.

In questo articolo vedremo come creare una gif animata, ossia un'immagine con azioni in movimento, dalla "fusione" di più immagini di tipo jpg.


Creazione del progetto

Si crea un nuovo progetto di tipo Windows Application con il linguaggio C# utilizzando l'ultima versione del Framework (nel momento in cui sto scrivendo la versione è la 9) , una volta creato il progetto, posizionare un pulsante nella form ed impostare la proprietà "Name" con il valore "BtnCreaGif". 

Aggiungiamo tramite la finestra Nuget, il riferimento alla libreria denominata "Magick.NET-Q16-AnyCPU", come riportata nella figura precedente.

Aggiungiamo tale componente al progetto.

Terminata la creazione del progetto, non resta che copiare in una cartella due o più immagini di tipo Jpg. Nel nostro esempio la cartella si chiama Immagini e si trova sotto la cartella "Varie".

Stesura del codice


Facciamo doppio click sul pulsante della form, in modo da passare in visualizzazione codice nell'evento click del pulsante.


Una volta passata in visualizzazione codice, dobbiamo scrivere le istruzioni per realizzare la gif.

Aggiungiamo in alto, nelle dichiarazioni di importazioni libreria, il riferimento a questa libreria.

Di seguito si riporta il frammento della dichiarazione della libreria.

C#

using ImageMagick;

Tramite la classe "MagickImageCollection", si crea l'immagine gif, partendo da un insieme di immagini, che verranno aggiunte e  formattate tramite la classe "MagickImage". Tramite il metodo "Write" verrà generata la "gif".

Di seguito si riporta il codice dell'evento click del pulsante, per la creazione della gif, con l'uso delle classi.

C#

private void BtnCreaGif_Click(object sender, EventArgs e)

 {

 

 

     string[] immaginiJpg = Directory.GetFiles(@"C:\Varie\Immagini", "*.jpg");

 

 

 

     // Crea un oggetto che contiene tutte le immagini della cartella

     using (var raccoltaImmagini = new MagickImageCollection())

     {

         //Imposto le dimensioni per tutte le immagini

         uint width = 800;

         uint height = 600;

 

 

         foreach (var immagine in immaginiJpg)

         {

             //Creo l'oggetto per la singola immagine

             var image = new MagickImage(immagine);

 

             //Ridimensiono l'immagine

             image.Resize(width, height);

 

             //Aggiungo l’immagine alla raccolta

             raccoltaImmagini.Add(image);

         }

 

         // Imposto il tempo tra le varie immagini (in centesimi di secondo)

         foreach (var image in raccoltaImmagini)

         {

             image.AnimationDelay = 100; // 1 secondo = 100 centesimi di secondo

         }

 

 

 

         //Creo la gif

         raccoltaImmagini.Write(@"C:\Varie\Immagini\nuovaimmagine.gif");

     }

 

     MessageBox.Show("GIF creata con successo!");

}


Conclusioni

L'articolo ha fornito un semplice utilizzo della libreria Magick.Net, che permette di creare gif prendendo due o più file immagini di tipo Jpg. L'esempio molto semplice, ha voluto illustrare le potenzialità di questa libreria gratuita, che fornisce al programmatore un valido strumento per la creazione anche di progetti complessi.

Nessun commento: