web-dev-qa-db-ja.com

品質を損なうことなく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

よりスムーズなサイズ変更を行うにはどうすればよいですか?

39
Naty Bizz

含む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" />
79
Daniel

RenderOptions.BitmapScalingModeを介してImage.xamlプロパティを設定します。

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

追加情報:

RenderOptions.BitmapScalingModeは、品質に基づいて画像をスケーリングするプロパティです。 WPF 4.0は、デフォルトでUnspecifiedに設定されます。これは、LowQuality画像レンダリングを指します。

ただし、サイズが大きくなっても画像の品質を維持するには、BitmapScalingModeをHighQualityとして選択する必要があります。

ここに、BitmapScalingModemsdn からの説明を持つ列挙メンバーがあります。

1。Fant-非常に高品質のFantビットマップスケーリングを使用します。これは、他のすべてのビットマップスケーリングモードよりも低速ですが、高品質の出力を生成します。

2。HighQuality-高品質のビットマップスケーリングを使用します。これは、LowQualityモードよりも低速ですが、高品質の出力を生成します。 HighQualityモードはFantモードと同じです。

3。Linear-線形ビットマップスケーリングを使用します。これは、HighQualityモードよりも高速ですが、低品質の出力を生成します。

4。LowQuality-バイリニアビットマップスケーリングを使用します。これは、HighQualityモードより高速ですが、低品質の出力を生成します。 LowQualityモードは、Linearモードと同じです。

5。NearestNeighbor-最近傍ビットマップスケーリングを使用します。これにより、ソフトウェアラスタライザーを使用する場合にLowQualityモードよりもパフォーマンスが向上します。このモードは、ビットマップを拡大するためによく使用されます。

6。Unspecified-デフォルトのビットマップスケーリングモードであるリニアを使用します。

51
Farhad Jabiyev