pagina di prova
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>

immagine risultato (il logo è un rettangolo trasparente con qualcosa dentro)