Я делаю какой-то стандартный код, я применяю логотип к изображению, и он работает нормально.
Исходное изображение всегда имеет размер 1024 x 768, так как код до этого берет изображение и изменяет его размер (создает новый файл на основе оригинала).
Логотип правильно применяется к некоторым имеющимся у меня изображениям размером 2288 x 1712. Если я использую изображение 3264 x 2448, то логотип добавляется в правильных координатах начала, но переносится по осям x и y. *
Логотип должен иметь зазор 10 сторон между сторонами. 2 буквы в логотипе, которые вы видите, также намного больше, чем логотип исходного изображения.
Если я возьму изображение, которое выполняет неправильное поведение (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();