Tramite il linguaggio di programmazione C#, e le classi dello spazio dei nomi System.Drawing, possiamo applicare alcuni effetti alle immagini a colori.
In particolare, in questo frammento di codice, viene illustrata la tecnica per applicare l’effetto acqua, ossia onde, ad un’immagine a colori.
C#
public static void effettoAcqua(string inputImagePath, string outputImagePath)
{
try
{
Bitmap immagineOriginale = new Bitmap(inputImagePath);
Bitmap immagineEffettoAcqua = new Bitmap(immagineOriginale.Width,
immagineOriginale.Height);
// Applica effetto sfocatura
using (Graphics g = Graphics.FromImage(immagineEffettoAcqua))
{
g.DrawImage(immagineOriginale, 0,
0, immagineOriginale.Width, immagineOriginale.Height);
}
// Crea onde sull'immagine
for (int y = 0; y < immagineEffettoAcqua.Height; y++)
{
for (int x = 0; x < immagineEffettoAcqua.Width; x++)
{
// Calcola la distorsione per l'effetto onde
//Modificando il valore viene intensificato
l'effetto
int offsetX = (int)(10 * Math.Sin(y / 10.0));
int newX = x + offsetX;
if (newX >= 0 && newX
< immagineEffettoAcqua.Width)
{
Color pixelColor = immagineEffettoAcqua.GetPixel(newX, y);
immagineEffettoAcqua.SetPixel(x, y, pixelColor);
}
}
}
//Salvo la nuova immagine
immagineEffettoAcqua.Save(outputImagePath, ImageFormat.Jpeg);
//libero la memoria
immagineOriginale.Dispose();
immagineEffettoAcqua.Dispose();
MessageBox.Show("Effetto
acqua applicato con successo");
}
catch (Exception ex)
{
MessageBox.Show("Errore: " + ex.Message);
}
}
C#
private void
BtnEffettoAcqua_Click(object sender, EventArgs e)
{
string immagineOriginale = "C:\\varie\\faro.jpg";
string nuovaImmagine = "C:\\varie\\faroAcqua.jpg";
//Chiama la funzione per convertire l'immagine con
effetto acqua
effettoAcqua(immagineOriginale,
nuovaImmagine);
}

Le opere pubblicate in questo blog sono sotto la licenza Creative Commons. Attribuzione- No commerciale e no derivate.
Nessun commento:
Posta un commento