Vi faccio un esempio pratico, io parto con queste due immagini:



e



Scrivendo il seguente codice

codice:
    class ClassWatermark
    {
        public static void Main()
        {
            Bitmap bmp = new Bitmap("D:\\temp\\x.jpg");
            Bitmap logo = new Bitmap("D:\\temp\\logo.bmp");
            Graphics canv1 = Graphics.FromImage(bmp);
            Color col;
            int py=0;
            int px=0;
            for (py = 0; py < logo.Height; py++)
            {
                for (px = 0; px < logo.Width; px++)
                {
                    col = logo.GetPixel(px, py);
                    logo.SetPixel(px, py, Color.FromArgb(128, col.R, col.G, col.B));
                }
            }
            logo.MakeTransparent();
            px = bmp.Width - 70;
            py = bmp.Height - 90;
            canv1.DrawImage(logo, px, py, 60, 80);
            bmp.Save("D:\\temp\\xnew.jpg");
        }
    }
L'immagine risultante è



mentre invece dovrebbe essere




In cosa sbaglio?