In questo mini articolo, vedremo come creare una gif animata, ossia un'immagine con azioni in movimento, da più immagini di tipo jpg.
Creazione del progetto
Si crea un nuovo progetto di tipo Windows Application, con 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
Passiamo in visualizzazione codice, ed in alto sopra ogni dichiarazione dobbiamo aggiungere il riferimento alla librerie Magick.Net.
Di seguito si riporta il frammento di codice dello spazio dei nomi per la libreria aggiunta al progetto.
C#
using ImageMagick;
Torniamo in visualizzazione grafica della nostra form, dov'è presente il pulsante.
Facciamo doppio click sul pulsante della form, in modo da passare in visualizzazione codice nell'evento click del pulsante.
Una volta passati in visualizzazione codice, dobbiamo scrivere le istruzioni per realizzare la gif.
Tramite la classe "MagickImageCollection", si crea un file di tipo gif, caricando una serie di immagini, che verranno formattate tramite la classe "MagickImage" permettendo la generazione di un file immagine di tipo gif tramite il metodo "Write".
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