4
我正在做一些标准代码,我将徽标应用于图像并且工作正常。Graphics.DrawImage徽标在大图像上缩放不正确
源图像始终为1024 x 768,因为之前的代码需要图像并调整其大小(根据原始图像创建新文件)。
标志正确地应用于一些图像上,我有2288 x 1712.如果我使用3264 x 2448的图像,那么徽标会添加到正确的开始坐标上,但会进行x和y轴。
徽标之间应有10px的间隙。您可以看到的徽标中的两个字母也远大于源图像徽标。
alt text http://i40.tinypic.com/13z0gf4.jpg
如果我采取的是做了错误的行为(3264 X 2448),并将其更改为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();