簡體   English   中英

在不損失質量的情況下調整 xaml 中的圖像大小

[英]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" />

使用 BitmapScalingMode

使用此設置:

<Image x:Name="InstrumentImage" RenderOptions.BitmapScalingMode="HighQuality" />

沒有 BitmapScalingMode

在此處查看不同的選項: https : //docs.microsoft.com/en-us/dotnet/api/system.windows.media.bitmapscalingmode?view=netframework-4.8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM