Подтвердить что ты не робот

Изменение размера изображения в xaml без потери качества

У меня есть это изображение (исходный размер: 256x256)

enter image description here

Я сделал это определение xaml, чтобы показать изображение в моем приложении

<Image Grid.Row="1" Source="/MyProject;component/Images/happy.png" Stretch="Fill" Width="64" Height="64"  VerticalAlignment="Top" Margin="0,0,0,0" HorizontalAlignment="Center" />

И я получаю этот результат

enter image description here

Как сделать более плавное изменение размера?

4b9b3361

Ответ 1

Включите RenderOptions.BitmapScalingMode="Fant" в ваше изображение, например:

<Image Grid.Row="1"
       Source="/MyProject;component/Images/happy.png"
       RenderOptions.BitmapScalingMode="Fant"
       Stretch="Fill"
       Width="64"
       Height="64"
       VerticalAlignment="Top"
       Margin="0,0,0,0"
       HorizontalAlignment="Center" />

Ответ 2

Задайте свойство RenderOptions.BitmapScalingMode для вашего Image через .xaml:

   <Image Grid.Row="1" RenderOptions.BitmapScalingMode="HighQuality" ... />

Дополнительная информация:

RenderOptions.BitmapScalingMode - это свойство, которое масштабирует изображения в зависимости от качества. WPF 4.0 по умолчанию используется значение Unspecified, которое относится к рендерингу LowQuality.

Но для обеспечения хорошего качества изображения при увеличении размера BitmapScalingMode должен быть выбран как HighQuality.

Ниже приведен список BitmapScalingMode перечислений с описанием из msdn:

1.Fant - используйте очень качественное масштабирование растрового изображения Fantasy, которое медленнее, чем все другие режимы масштабирования растровых изображений, но обеспечивает более высокое качество выход.

2.HighQuality - используйте масштабирование растрового изображения высокого качества, которое работает медленнее, чем режим LowQuality, но производит более качественный результат. HighQuality режим такой же, как режим Fant.

3.Linear - используйте линейное масштабирование растрового изображения, которое работает быстрее, чем режим HighQuality, но производит более низкий результат.

4.LowQuality - используйте билинейное масштабирование растрового изображения, которое работает быстрее, чем режим HighQuality, но производит более низкий результат. Низкое качество режим тот же, что и линейный режим.

5.NearestNeighbor - используйте масштабирование растрового изображения ближайшего соседа, которое обеспечивает преимущества производительности в режиме LowQuality, когда программное обеспечение растеризатор. Этот режим часто используется для увеличения растрового изображения.

6.Unspecified - используйте режим масштабирования растрового изображения по умолчанию, который является линейным.