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();