lunedì 23 febbraio 2026

C# creare una gif animata di tipo bianco e nero con il componente gratuito ImageMagick

In questo esempio di codice, vedremo come creare una gif animata di colore bianco e nera, tramite il linguaggio di programmazione C# ed il componente gratuito ImageMagick.

Dopo aver aggiunto ad un progetto di tipo "Windows Application", il componente gratuito "ImageMagick", in alto, nella dichiarazione dei namespace, aggiungo il riferimento a questa libreria.

Di seguito il frammento di codice di esempio.


C#

using ImageMagick;


Dopo aver aggiunto un pulsante nella form, facciamo doppio click sul pulsante, in modo da passare in visualizzazione codice dell'evento stesso.


Tramite le classi messe a disposizione di questa libreria, uniamo le immagini presenti in una cartella, impostando le stesse dimensioni, l'effetto bianco e nero, ed il tempo tra un'immagine e l'altra, andremo a creare un file di tipo Gif animata.
Di seguito si riporta il codice di esempio delle suddette operazioni, commentato per chiarezza delle varie operazioni.

C#

private void BtnCreaGif_Click(object sender, EventArgs e)

 {

 

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

 

  //Oggetto che contiene tutte le immagine per realizzare la gif

  using (var raccoltaImmagini = new MagickImageCollection())

  {

      //Imposto le dimensioni per tutte le immagini

      uint width = 800;

      uint height = 600;

      foreach (var immagine in immaginiJpg)

      {

          //Per ogni immagine imposto le dimensioni, l'effetto e l'aggiungo alla raccolta

          var image = new MagickImage(immagine);                  

          image.Resize(width, height);

          //Aggiungo l'effetto griglio

           image.Grayscale();

          // ApplyEffects(image);

          //Aggiungo l'immagine modifica all'oggetto che crea la gif

          raccoltaImmagini.Add(image);

      }

       // Imposto il ritardo tra i fotogrammi (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\nuovaimmagine4.gif");

  }

 

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

}


domenica 22 febbraio 2026

C# trasformare un immagine in testo in una nuova immagine di tipo jpg

 

C# da immagine a testo

In questo frammento di codice nel linguaggio di programmazione C#, vedremo come trasformare un file immagine di tipo Jpg, in una nuova immagine formato testo.

Il progetto è di tipo Windows Application.

L'immagine originale verrà trasformata in un testo, utilizzando le classi presenti nello spazio dei nomi System.Drawing .

Di seguito la funzione per ottenere un oggetto di tipo ImageCodecInfo.

C#

    private ImageCodecInfo GetEncoder(ImageFormat format)

    {

        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();

        foreach (ImageCodecInfo codec in codecs)

        {

            if (codec.FormatID == format.Guid)

            {

                return codec;

            }

        }

        return null;

    }


Di seguito il codice nell'evento click del pulsante, per generare la nuova immagine.

C#


private void BtnScrittaJpg_Click(object sender, EventArgs e)

{

    try

    {

        //Percorso dell'immagine originale

        string percorsoImmagine = @"C:\varie\panchina.jpg";

 

        //Percorso della nuova immagine in formato jpg

        string percorsoNuovaImmagine = @"C:\varie\panchinaTesto2b.jpg";

 

        //Oggetto per l'immagine originale

        Bitmap immagine = new Bitmap(percorsoImmagine);

 

        //Creo un nuovo oggetto di tipo bitmap con lo stesso formato

        Bitmap nuovaImmagine = new Bitmap(immagine.Width, immagine.Height);

 

        //Creo un oggetto Graphics per disegnare sulla nuova immagine

        Graphics g = Graphics.FromImage(nuovaImmagine);

 

        //Imposto lo sfondo trasparente

        g.Clear(Color.Transparent);

 

        //Oggetto Font per la scritta

        Font font = new Font("Arial", 50, FontStyle.Bold);

 

        //Oggetto Brush per la scritta

        Brush brush = new SolidBrush(Color.White);

 

        //Larghezza ed altezza della scritta

        SizeF size = g.MeasureString("Emanuele", font);

 

        //Definisco la posizione della scritta

        float x = (nuovaImmagine.Width - size.Width) / 2;

        float y = (nuovaImmagine.Height - size.Height) / 2;

 

        //Oggetto GraphicsPath per la scritta

        GraphicsPath path = new GraphicsPath();

        path.AddString("Emanuele", font.FontFamily, (int)font.Style, font.Size, new PointF(x, y), StringFormat.GenericDefault);

 

        //Imposto la modalità di ritaglio

        g.SetClip(path);

 

        //Disegno l'immagine originale sulla nuova immagine

        g.DrawImage(immagine, 0, 0);

 

        //Salvo la nuova immagine in formato JPEG

        ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);

        System.Drawing.Imaging.Encoder objEncoder = System.Drawing.Imaging.Encoder.Quality;

        EncoderParameters objEncoderParameters = new EncoderParameters(1);

        EncoderParameter objEncoderParameter = new EncoderParameter(objEncoder, 90L);

        objEncoderParameters.Param[0] = objEncoderParameter;

        nuovaImmagine.Save(percorsoNuovaImmagine, jgpEncoder, objEncoderParameters);

        MessageBox.Show("Immagine creata e salvata in " + percorsoNuovaImmagine);

    }

    catch (Exception ex)

    {

        MessageBox.Show("Errore durante il salvataggio:\n" + ex.Message);

    }

}





Creazione di immagini con l'intelligenza artificiale

 

generatore immagini ai


Un sito in lingua italiana che permette di generare l'immagine scrivendo una descrizione anche in lingua italiana.

Parliamo del sito https://raphael.app/it che permette di creare gratuitamente e senza registrazione e senza lasciare email, immagini, impostando una descrizione.

Per avere un maggior risultato, il sito consiglia di scrivere la descrizione in lingua inglese.

Un sito che funziona molto bene.


sabato 21 febbraio 2026

free embedded SQL database engine

Si riporta una lista di alcuni database gratuiti di tipo embedded, utilizzabili su multi piattaforma e senza aspetto server, da utilizzare con la tecnologia .Net

Alcuni sono anche open source ed altri realizzati con tecnologia .Net.


LiteDB LiteDB :: A .NET embedded NoSQL database (NoSql) realizzato con tecnologia .Net

Sqldatabase  https://www.sqldatabase.net/  Realizzato con tecnologia .Net





venerdì 20 febbraio 2026

strumento online per la condivisione dei file megafile

 

megafile condivisione di file

Il sito MegaFile permette di condividere i file di vario genere.

Il servizio, gratuito, ha due opzioni, quella senza registrazione e senza email, denominata ospite, e quella con registrazione in quest'ultimo caso ci sono più funzionalità.

Il sito è in lingua italiana e funziona molto bene. Un servizio gratuito per condividere i file.

Per maggiori informazioni ed utilizzo visitate il seguente sito https://www.megafile.it/ 

giovedì 19 febbraio 2026

Github Effettuare il consolidamento delle modifiche nei repository in Visual Studio

In questo articolo vedremo come utilizzare la funzionalità della gestione del codice sorgente in Visual Studio 2022 Community, tale articolo si può applicare anche in altre versioni di Visual Studio.
Come repository, occorre averne un account e repository in GitHub.

Il vantaggio dei sistemi della gestione del codice sorgente, come github, permettono di archiviare le modifiche delle varie parti del software. Utile sia per il singolo sviluppatore e sia per un gruppo di lavoro, che può tenere traccia delle modifiche e vedere la cronologia delle modifiche.
Quando abbiamo effettuato le modifiche e siamo certi che il codice scritto è idoneo a quanto ci siamo prefissati, occorre archiviare la modifica nel repository di appartenenza, o meglio nel ramo in cui si sta effettuando la modifica.
Per le operazioni di archiviazione, le funzioni commit e push, permettono tale azione.
Nella finestra di “esplora progetti”  il progetto che è collegato ad un respository, visualizza i vari file con delle icone.
Nel caso che il file è archiviato sarà presente un’icona a forma di lucchetto (figura 1), mentre nel caso che abbiamo apportato le modifiche ma non archiviato, detto in gergo tecnico ckeck-out, avremo un baffetto rosso, il tutto come mostrato in figura 1.


gestione del codice sorgente in visual studio 2022


Figura 1 – La finestra con lo stato dei file.


In Visual Studio 2022 o altra versione di questo ambiente di sviluppo, nella finestra “modifiche Git” (figura 2) possiamo archiviare le modifiche apportate, tramite una delle varie voci presenti nel menu sotto ai commenti.
La finestra, mostra un campo a tendina, in cui sono presenti i vari rami, il campo “Commenti” che è un campo obbligatorio, ed altre funzionalità, tra queste un menù con varie voci, tra le quali la possibilità di effettuare il consolidamento delle modifiche e rilascio nel repository remoto (commit e push).
Inoltre nella parte inferiore troviamo l’elenco dei file modificati e che non sono stati archiviati.




gestione del codice sorgente in visual studio 2022



Figura 2 – La finestra per il rilascio delle modifiche


Selezioniamo la freccia del menu per effettuare il commit delle modifiche, quella vicino alla scritta “Esegui commit di tutto”, nel menù che viene visualizzato (figura 3) selezioniamo la voce “Esegui commit di tutto e push”.


gestione del codice sorgente in visual Studio



Figura 3 – Il pulsante commit e push



Una volta terminato il commit e push, verrà visualizzato un messaggio in alto, e nell’elenco dei file da archiviare non sarà presente nessun file, il tutto come mostrato in figura 4.


gestione del codice sorgente in visual studio
Figura 4 – Archiviazione di tutti i file


Al termine del rilascio delle modifiche nella finestra di “Esplora progetti”, tutti i file saranno 
contrassegnati con l’icona del lucchetto, il tutto come mostrato in figura 5.


gestione del codice sorgente in visual studio


Figura 5 – I file con l’icona del lucchetto 



Nel caso che invece si effettua solo il commit, quindi, si consolidano le modifiche dei file ma non si archiviano, la finestra mostra una voce che dice “Commit [nome commit] creato in locale”, dove “Nome commit” è il nome che viene generato automaticamente, il tutto come mostrato in figura 6.
Si può continuare a fare le modifiche e fare il commit, oppure effettuare il rilascio in archivio, tramite la funzione “Push”,, che avviene con l’icona della freccia rivolta verso l’alto.

gestione del codice sorgente in visual studio



Figura 6 – il risultato della sola funzione “Esegui commit di tutto”.


mercoledì 18 febbraio 2026

Motore di ricerca brave ed Agent AI

agent Brave
 

Brave, oltre ad essere un ottimo Browser per la navigazione internet, offre la possibilità di effettuare ricerche rispettando la privacy.

Il sito per cercare contenuti su internet, è il seguente https://search.brave.com/ con il quale si può accedere anche alla modalità di intelligenza artificiale tramite l'agent AI dal seguente sito https://search.brave.com/ask




SourceTree aggiungere un progetto esistente di GitHub

Vedremo in questo mini articolo, come aggiungere al programma SourceTree, un software per la gestione del codice sorgente, in particolare del repository GitHub, un progetto esistente.

Nel caso che abbiamo un progetto di Visual Studio 2022 collegato ad un repository creato in GitHub, possiamo aggiungere nel programma SourceTree, il progetto aggiungendolo nella lista.

Apriamo con il simbolo “+” delle schede, una nuova pagina, e facciamo click sul pulsante con il testo “Add”, il tutto come mostrato in figura 1.

sourcetree aggiungere un progetto
Figura 1 – L’aggiunta del progetto
 

Tramite il pulsante “Browse” selezioniamo la cartella superiore del progetto esistente che vogliamo visualizzare nella lista dei progetti. In particolare, dovremmo selezionare quella superiore in cui si trova la sottocartella “git”, a questo punto verrà visualizzato nella casella “Percorso copia di lavoro” il percorso e nella casella “Nome” il nome del progetto del progetto di repository, oltre al pulsante “Aggiungi” abilitato, il tutto come mostrato in figura 2.


sourcetree aggiungere un progetto esistente github
Figura 2 – I campi valorizzati dopo la selezione del progetto


A questo punto facciamo click sul pulsante “Aggiungi” per inserirlo nell’elenco dei progetti, il tutto come mostrato in figura 3.


sourcetree aggiungere un progetto esistente di github

Figura 3 – L’aggiunta del progetto