qui c'è un altro esempio.
Leggo l'immagine da disco: nota che è sempre la stessa procedura.
La ridimensiono a 600px
La bordo con un bordo di 10px nero
Ci scrivo qualcosa.
Scrivo RISERVATO tipo filigrana al centro, ruotato di 45°: nota il merge di due immagini
Esempio di salvataggio su disco
Esempio di salvataggio su stream in formato png
codice:
private void Sub1()
{
const int bordo = 10; //spessore del bordo
const int dimMax = 600; //dimensione max dell'immaine
//---------------------------------------------------------------
//LEGGO IMMAGINE DA REMOTO O DA DISCO, PERCORSO VIRTUALE O FISICO
//---------------------------------------------------------------
Bitmap bmp = j.ImgLoad(@"/ProveNicon/h.jpg");
//-----------------------------------------------------------------------------
//dimensione max = 600px, interpolazione bicubica, non ingrandisce per adattare
//-----------------------------------------------------------------------------
j.ImgResize(ref bmp, dimMax - bordo - bordo);
//--------------------
//CI SCRIVO QUALCOSA
//--------------------
string testo = "Gairo";
Font fn = new Font("Arial", 10, FontStyle.Regular, GraphicsUnit.Point);
SizeF sf = j.ImgGetSizeFromText(bmp, testo, fn);
j.ImgWriteText(bmp, testo, Brushes.Coral, fn, 10, bmp.Height - (int)sf.Height);
//-----------------------------------------------
//metto un bordo nero di 10 px
//-----------------------------------------------
j.ImgBorder(ref bmp, bordo, Color.Black);
//--------------------------------------------------------------------------------------
//metto la scritta "RISERVATO" al centro dell'immagine, ruotata di 45°, semitrasparente
//--------------------------------------------------------------------------------------
Bitmap bmp1 = j.ImgFromText("RISERVATO", Color.Transparent, new SolidBrush(Color.FromArgb(255, 170, 170, 170)), new Font("Courier New", 48, FontStyle.Bold, GraphicsUnit.Point));
j.ImgRotate(ref bmp1, 45, Color.Transparent);
j.ImgMerge(bmp, bmp1, (int)((bmp.Width - bmp1.Width) / 2.0), (int)((bmp.Height - bmp1.Height) / 2.0), false, 1.0);
bmp1.Dispose();
//---------------------------------------------------------------
//salvo su file in formato jpg, compressione standare predefinita
//---------------------------------------------------------------
j.ImgSaveToFile(bmp, @"c:\tmp\gairo1.jpg");//non viene fatto il dispose
//-------------------------------------------
//salvo nello stream di uscita in formato png
//-------------------------------------------
j.ImgSaveToResponseOutputStream(bmp, gdi.img.FormatoOutput.png);//viene fatto il dispose
}