PDA

View Full Version : [c#] cambiare sfondo immagine


akyra
04-04-2008, 11:56
ciao a tutti!
non so se il titolo è il più adatto, però vorrei esporvi il mio problema.
Dovrei creare una funzione per prendere un'immagine jpeg e, se le dimensioni di quest'ultima sono inferiori a 1920x1080 pixel, dovrebbe riempire i rimanenti pixel di nero...naturalmente centrando l'immagine originaria.
Il tutto in c#

consigli?


Io avevo già pensato di creare un mio file jpeg di dimensioni 1920x1080 riempito tutto di nero e copiarvi sopra l'immagine sorgente, opportunamente centrata...soltanto che non so da dove partire...non ho mai manipolato immagini da codice

kernel::panic
04-04-2008, 16:05
Innanzitutto devi creare una nuova immagine delle dimensioni volute (non farti trarre in inganno dal nome: la classe Bitmap gestisce le Jpeg ;) ):

Bitmap bmp = new Bitmap(1920, 1080);

Poi crei un'oggetto Graphics per "disegnare" sull'immagine:

using(Graphics gfx = Graphics.FromImage(bmp))
{
.....
}

Col metodo gfx.FillRectangle puoi "colorare" di nero lo sfondo.

Col metodo gfx.DrawImage puoi invece "disegnare" l'immagine originale in quella nuova.

Infine con bmp.Save puoi salvare la nuova immagine in Jpeg

akyra
04-04-2008, 16:29
bella lì, grazie!
avevo letto frettolosamente la documentazione e mi stavo scassando la testa per capire se esistevano oggetti specifici per manipolare i jpeg.

Grazie mille ;)