Ho risolto, osservando meglio il programma di esempio ho riscontrato delle differenze insignificanti, ma che evidentemente avevano il loro peso.
Ecco il nuovo codice:
codice:
class ClassWatermark
{
public static void Main()
{
Image img1 = Image.FromFile("D:\\temp\\x.jpg");
Image img2 = Image.FromFile("D:\\temp\\logo.gif");
Bitmap bmp = new Bitmap(img1);
Bitmap logo = new Bitmap(img2);
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(logo.GetPixel(0,0));
px = bmp.Width - 70;
py = bmp.Height - 90;
canv1.DrawImage(logo, px, py, 60, 80);
bmp.Save("D:\\temp\\xnew.jpg");
}
}
La differenza sta nel fatto che prima caricavo i file direttamente come Bitmap, ora prima li carico come Image, poi li passo ai Bitmap.
Devo poi aggiungere qual'è il pixel campione per definire la trasparenza (logo.MakeTransparent(logo.GetPixel(0,0))
.
Spero le mie esperienze servano a qualcuno, ciao!