Фильтрация DrawImage при рисовании повернутого изображения в WPF DrawingContext

Я рисую изображение на элементе управления, повернутом, как правило, всего на несколько градусов. Это делает правильную фильтрацию важной, но я вижу артефакты, похожие на проблему ближайшего соседа. Где я могу установить фильтр для использования при рисовании изображения?

Изображение больше, чем результирующий размер на экране.

    private void drawRotatedImage( DrawingContext dc , double width_px , double x , double y , double angle )
    {
        dc.PushTransform( new TranslateTransform(x,y) );
        dc.PushTransform( new RotateTransform(angle) );
        double scale = width_px / image.Width;
        Rect rr = new Rect( -image.Width*0.5*scale , -image.Height*0.5*scale , image.Width*scale , image.Height*scale );
        dc.DrawImage( image , rr );
        dc.Pop();
        dc.Pop();
    }

1 ответ

Если вы пишете свой код в.NET 4, вам нужно повысить фильтр до более качественного Fantan.

Сделайте это, поместив вложенное свойство в ваше окно или конкретный элемент.

Другие вопросы по тегам