About me| Chi sono?| BLOG
Chiara| Paola| Valentina| Francesca
Home| Download| Poesie | Poems| Immagini | Pictures| Articoli | Papers| Winamp Plugins
English
› Home › Download › Poems › Pictures » Technical Papers › Winamp Plugins
Italiano
› Principale › Download › Poesie › Immagini » Articoli IoProgrammo › Plugins per Winamp

Creazione "dinamica" di immagini

// 29/02/2004 - Salvatore Meschini 
// Un piccolo esperimento: crea un'immagine via codice 
// e salvala in un file .JPEG. La classe è stata scritta in una manciata di minuti 
// quindi potrebbe contenere dei "bug" (ovviamente non è ottimizzata in nessun 
// modo!). Come spendere in modo "utile" la pausa caffè... :-) 
// Compilazione: csc /target:winexe nomefile.cs 

using System; 
using System.IO; 
using System.Drawing; 
using System.Drawing.Imaging; 
using System.Drawing.Drawing2D; 

namespace CreaImmagine 
{ 

public class Immagine 
{ 
private Bitmap Img; 
public Immagine(string Testo, int dimX, int dimY) 
{ 
Img = new Bitmap(dimX, dimY); // Dimensione dimX x dimY (es.800x600) 
int Passo = dimX / 16; 

Graphics Contenuto = Graphics.FromImage(Img); // La nostra "tela" 
SolidBrush Pennello = new SolidBrush(Color.Gold); // Colore chiaro, gusto... 
Font Carattere = new Font("Verdana", dimX / 12, FontStyle.Bold, GraphicsUnit.Pixel); 
Rectangle DimSfuma = new Rectangle(0,0,dimX,dimY); // Vedi righe seguenti: 
LinearGradientBrush PennelloSfumato = new LinearGradientBrush(DimSfuma ,Color.Fuchsia,Color.Yellow,180); 
LinearGradientBrush PennelloSfumato1 = new LinearGradientBrush(DimSfuma ,Color.DarkGreen,Color.White,45); 

Contenuto.FillRectangle(PennelloSfumato,DimSfuma); // Sfondo 
Pennello.Color = Color.Black; // Colore testo = nero 
SizeF DimTesto = Contenuto.MeasureString(Testo, Carattere); // Dimensione testo 

// Scrivi il testo 
Contenuto.DrawString(Testo, Carattere, Pennello, (dimX-DimTesto.Width)/2, (dimY-DimTesto.Height)/2); 

for (int i = 0; i < dimX; i = i + Passo + (dimX-dimY)/Passo) // Disegna rettangoli: 
{ 
Contenuto.FillRectangle(PennelloSfumato1, i, 0, Passo, Passo); // In alto 
Contenuto.FillRectangle(PennelloSfumato1, i, dimY - Passo, Passo, Passo); // In basso 
} 
} 

public void SalvaConNome(string Nome) 
{ 
FileStream MioFile = new FileStream(Nome, FileMode.Create, FileAccess.ReadWrite); 
Img.Save(MioFile, ImageFormat.Jpeg); // Salva l'immagine su un file 
} 
} 
class Class 
{ 
[STAThread] 
static void Main(string[] args) 
{ 
// Crea una nuova immagine 
Immagine Img = new Immagine("Ciao da Salvatore!", 800, 600); 
Img.SalvaConNome("IoProgrammo.jpg"); // Ora crea il file .jpg 
} 
} 
} 

Questo è il risultato dell'esecuzione: 




Click here - Clicca qui