Je fais du code standard, j'applique un logo à une image et ça fonctionne bien.Graphics.DrawImage logo mise à l'échelle incorrecte sur une grande image
L'image source est toujours 1024 x 768 comme le code avant que cela ne prenne l'image et la redimensionne (crée un nouveau fichier basé sur l'original).
Le logo est appliqué correctement sur certaines images que j'ai 2288 x 1712. Si j'utilise une image de 3264 x 2448 alors le logo est ajouté aux bons coordonnées de départ mais continue sur les axes x et y.
Le logo doit avoir un écart de 10 pixels entre les côtés. Les 2 lettres du logo que vous pouvez voir sont également beaucoup plus grandes que le logo de l'image source.
alt text http://i40.tinypic.com/13z0gf4.jpg
Si je prends l'image qui fait le mauvais comportement (3264 x 2448) et changer à 2288 x 1712 et puis exécutez le code, il affiche le résultat correct!
Je ne comprends pas parce que la variable sourceImg est toujours la version 1024 x 768 donc pourquoi le redimensionnement de l'image originale aurait-il un impact?
Image sourceImg = Image.FromFile(Path.Combine(filepath,filename));
Image logo = Image.FromFile(watermark);
Graphics g = Graphics.FromImage(sourceImg);
g.DrawImage(
logo,
sourceImg.Width - horizontalPosition - logo.Width,
sourceImg.Height - verticalPosition - logo.Height
);
g.Dispose();
logo.Dispose();
sourceImg.Save(Path.Combine(filepath, filename));
sourceImg.Dispose();