codice:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
//nuova istanza di ImageTool con immagine principale di sottofondo
ImageTool g = new ImageTool(@"C:\dati\ProveNikon\images\static.panoramio.com.photos.original.216697.jpg");
//fondo il logo con trasparenza 50 (varia tra 0 e 100) alle coordinate x:=0 e y:= 0
g.AddMark(@"C:\dati\ProveNikon\gif_trasparente.gif", 50, 0, 0);
//salvo l'immagine fusa
g.Save(@"c:\tmp\immagine_con_logo.jpg");
//creo il tag [img][/img]", @"/tmp/immagine_con_logo.jpg");
}
private class ImageTool
{
private System.Drawing.Image myImage;
private Graphics myGraphics;
public ImageTool(string baseImageFile)
{
myImage = System.Drawing.Image.FromFile(baseImageFile);
myGraphics = Graphics.FromImage(myImage);
}
public void AddMark(string timbroFilePath, int alpha, int posX, int poxY)
{
float alphaf = (float)alpha / 100;
//creo un oggetto image a partire da un file esistente
System.Drawing.Image timbro = System.Drawing.Image.FromFile(timbroFilePath);
//crea il rettangolo che rappresenterà l'area di disegno
Rectangle myRec = new Rectangle(posX, poxY, timbro.Width, timbro.Height);
float[][] colorArray ={ // r v b a
new float[] {1, 0, 0, 0, 0},//r
new float[] {0, 1, 0, 0, 0},//v
new float[] {0, 0, 1, 0, 0},//b
new float[] {0, 0, 0, alphaf, 0},//a
new float[] {0, 0, 0, 0, 1}};
/* legenda
* r = rosso
* v = verde
* b = blu
* a = alpha
* */
//contiene una matrice 5x5 contenente le coordinate per lo spazio RGBA
ColorMatrix myColorMatrix = new ColorMatrix(colorArray);
//contiene le informazioni sulla manipolazione del colore
ImageAttributes imageAttr = new ImageAttributes();
imageAttr.SetColorMatrix(myColorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
//disegna l'immagine
myGraphics.DrawImage(timbro, myRec, 0, 0, timbro.Width, timbro.Height, GraphicsUnit.Pixel, imageAttr);
imageAttr.Dispose();
timbro.Dispose();
}
public void Save(string savePath)
{
myImage.Save(savePath);
myGraphics.Dispose();
myImage.Dispose();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="div1" runat="server"></div>
</form>
</body>
</html>