Негладкое масштабирование с графикой. Рисование изображения - PullRequest
7 голосов
/ 21 апреля 2011

Я рисую несколько изображений в сетке.Изображения сохраняются как 16x16px pngs.

Однако позже я решил увеличить размер сетки до 32x32px.

Когда я использую следующий код:

graphics.DrawImage(image, Xdraw, Ydraw, 32, 32);

где изображение - это изображение, загруженное из png, а Xdraw и Ydraw - верхний левый угол, определенный где-то выше.

Изображение слегка размытое, поскольку .DrawImage использует бикубическую (или некоторую другую функцию сглаживания) для увеличения масштабаобраз.Я бы хотел, чтобы он отключил сглаживание, чтобы сохранить жесткие края.

Возможно ли это?

Ответы [ 2 ]

12 голосов
/ 21 апреля 2011

Я думаю, вы должны изменить InterpolationMode свойство вашей графики.Также взгляните на SmoothingMode и CompositingQuality класса Graphics.

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

Есть две вещи, которые могут сработать.

  • Попробуйте поэкспериментировать со свойством InterpolationMode вашего графического объекта. К сожалению, я не знаю, какие настройки работают лучше, чем стандартные.
  • Попробуйте использовать ScaleTransform на вашем объекте Graphics (не забудьте сбросить его, когда закончите).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...