C # графика отображает изображение больше, чем обычно? - PullRequest
1 голос
/ 16 апреля 2011

Я пытаюсь объединить два изображения, используя System Sharp System.Drawing.Graphics.

Вот мой код:

        Point p = new Point(Convert.ToInt32(OffsetX), Convert.ToInt32(OffsetY));
        Image i = Image.FromFile("1.jpg");
        Image toDraw = Image.FromFile("2.jpg");
        using (Graphics g = Graphics.FromImage(i))
        {
            g.DrawImage(toDraw, p);
            g.Save();
            Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), "saved"));
            i.Save(Path.Combine("saved", "saved1.jpg"));
        }

Код работает нормально, но второе изображение увеличиваетсяв выводе из программы.

Сделано с Paint:

enter image description here

Сделано с кодом выше:

enter image description here

1 Ответ

3 голосов
/ 16 апреля 2011

Используйте перегрузку Graphics.DrawImage (Image, Rectangle) для управления размером изображения. Используемая вами перегрузка учитывает свойства Image.HorizontResolution и VerticalResolution, чтобы гарантировать, что нарисованное изображение будет (примерно) таким же большим в дюймах, как и при его создании. Исправлено:

       g.DrawImage(toDraw, new Rectangle(p, new Size(i.Width, i.Height)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...