.NET: Что делает Graphics.DrawImageUnscaled?

этоне очень известныйчто если вы рисуете изображение, например:

graphics.DrawImage(image, top, left);

изображение будет масштабировано. Это потому чтоDrawImage смотрит на настройку dpi изображения (например, 72 dpi из фотошопа) и масштабирует изображение, чтобы соответствовать отображению назначения (обычно 96 dpi).

Если вы хотите нарисовать изображение без масштабирования, вы должны явно указатьDrawImage размер изображения:

graphics.DrawImage(img, top, left, img.Width, img.Height);

Я знал это по многим годам программирования в GDI +. Тот же факт существует в .NETSystem.Drawing Обертки вокруг GDI + - если вы хотите нарисовать немасштабированное изображение, вы должны заставить его масштабироваться до исходного размера.

Вот почему я был впечатлен, чтобы найтиDrawImageUnscaled метод в .NET:

graphics.DrawImageUnscaled(img, top, left);

За исключением того, что изображение все еще масштабируется; делая его идентичным:

graphics.DrawImage(img, top, left);

и если вы хотите нарисовать немасштабированное изображение, вы должны продолжать звонить:

graphics.DrawImage(img, top, left, img.Width, img.Height);

Что подводит меня к моему вопросу: что делаетDrawImageUnscaled если не нарисовать изображение немасштабированное?

Из MSDN

Метод Graphics.DrawImageUnscaled (Image, Int32, Int32)

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

Метод Graphics.DrawImage (Image, Int32, Int32)

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

Метод Graphics.DrawImage (Image, Int32, Int32, Int32, Int32)

Рисует указанное изображение в указанном месте и с указанным размером.

Смотрите такжеMSDN: Как: повысить производительность, избегая автоматического масштабирования

Ответы на вопрос(1)

Ваш ответ на вопрос