[英]Resize image in xaml without losing quality
我有這張圖片(原始尺寸:256x256)
我做了這個 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" />
我得到了這個結果
我怎樣才能更平滑地調整大小?
在您的圖像上包含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" />
通過.xaml
為您的Image
設置RenderOptions.BitmapScalingMode
屬性:
<Image Grid.Row="1" RenderOptions.BitmapScalingMode="HighQuality" ... />
附加信息:
RenderOptions.BitmapScalingMode
是根據質量縮放圖像的屬性。 WPF 4.0 默認為Unspecified
,指的是LowQuality
圖像渲染。
但是,為了確保圖像保持良好的質量時,尺寸的增加,BitmapScalingMode應選擇為HighQuality
。
這是BitmapScalingMode枚舉成員及其來自msdn的描述:
1. Fant - 使用非常高質量的 Fant 位圖縮放,這比所有其他位圖縮放模式慢,但產生更高質量的輸出。
2. HighQuality - 使用高質量位圖縮放,這比 LowQuality 模式慢,但產生更高質量的輸出。 HighQuality 模式與 Fant 模式相同。
3.線性- 使用線性位圖縮放,這比 HighQuality 模式快,但輸出質量較低。
4. LowQuality - 使用雙線性位圖縮放,這比 HighQuality 模式快,但輸出質量較低。 LowQuality 模式與線性模式相同。
5. NearestNeighbor - 使用最近鄰位圖縮放,當使用軟件光柵化器時,它比 LowQuality 模式提供性能優勢。 此模式常用於放大位圖。
6.未指定- 使用默認位圖縮放模式,即線性。
如上所述,設置RenderOptions.BitmapScalingMode="HighQuality"
激活抗鋸齒。 我想為不知道什么是抗鋸齒的用戶提供一個示例。
沒有這個設置:
<Image x:Name="InstrumentImage" />
使用此設置:
<Image x:Name="InstrumentImage" RenderOptions.BitmapScalingMode="HighQuality" />
在此處查看不同的選項: https : //docs.microsoft.com/en-us/dotnet/api/system.windows.media.bitmapscalingmode?view=netframework-4.8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.