標準のコードをいくつか実行していますが、画像にロゴを適用していて、正常に動作しています。大きな画像でGraphics.DrawImageのロゴのスケーリングが正しく行われない
ソースイメージはイメージを取得してサイズを変更する前にコードとして常に1024 x 768です(元のイメージに基づいて新しいファイルを作成します)。
私は2288 x 1712の画像に正しくロゴが適用されます。3264 x 2448の画像を使用すると、ロゴは正しい始点座標に追加されますが、x軸とy軸を持ちます。
ロゴの辺の間に10pxのギャップがあります。あなたが見ることができるロゴの2文字は、元の画像のロゴよりもはるかに大きいです。
alt text http://i40.tinypic.com/13z0gf4.jpg
は私が間違っている行動(X 2448 3264)を行うと、2288 X 1712にそれを変更してからコードを実行された画像を撮影した場合、それは正しい結果を出力します!
変数sourceImgは常に1024 x 768のバージョンなので、わからない元の画像のサイズを変更すると効果があるのはなぜですか?
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();