domenica 9 novembre 2025

C# creare una nuova immagine con effetto di invertire parte destra con quella sinistra e viceversa in .Net 9

 

C# invertire parte sinistra in quella destra

In questo frammento di codice nel linguaggio di programmazione C#, vedremo come invertire in un'immagine esistente, la parte sinistra con la parte destra.

Utilizzeremo la versione del .Net Framework 9, in un progetto di tipo Windows Application, utilizzando le classi presenti nello spazio dei nomi "System.Drawing".

In visualizzazione codice, in alto sopra ad ogni dichiarazione, aggiungiamo lo spazio dei nomi per la gestione della grafica.

C#

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;


Nell'evento click di un pulsante, aggiungiamo il seguente frammento di codice, che crea un nuova immagine, da una esistente, invertendo la parte sinistra in quella destra.


C#

private void BtnSinistraDestra_Click(object sender, EventArgs e)

{

try

{

string percorsoNomeFileOriginale = "C:\\varie\\uccelli.jpg";

string percorsoNomeNuovoFile = "C:\\varie\\uccelliSinistraDestra.jpg";

//Immagine originale

using (Bitmap bmpImmagineOriginale = new Bitmap(percorsoNomeFileOriginale))

{

//Nuova immagine per effetto destra e sinistra

Bitmap bmpNuovaImmagine = new Bitmap(bmpImmagineOriginale.Width, bmpImmagineOriginale.Height);

//Inverte l'immagine orizzontalmente

for (int x = 0; x < bmpImmagineOriginale.Width; x++)

{

for (int y = 0; y < bmpImmagineOriginale.Height; y++)

{

// Prendi il colore del pixel dall'immagine originale

Color pixelColor = bmpImmagineOriginale.GetPixel(x, y);

// Imposta il colore del pixel nella posizione speculare nell'immagine capovolta

// Per un capovolgimento orizzontale, l'asse X viene invertito

bmpNuovaImmagine.SetPixel(bmpImmagineOriginale.Width - 1 - x, y, pixelColor);

}

}

bmpNuovaImmagine.Save(percorsoNomeNuovoFile);

MessageBox.Show("Immagine con effetto invertita sinistra in destra  creata con successo");

}

 


}

catch (System.Exception ex)

{

MessageBox.Show("Errore: " + ex.Message);

}

} 


Nessun commento: