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:
Posta un commento