Изменение размера изображения в 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]()
Как сделать более плавное изменение размера?
Ответы
Ответ 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 - используйте режим масштабирования растрового изображения по умолчанию, который является линейным.