解決WPF圖片模糊最佳方法


對於圖片顯示模糊相信很多人都遇到過,其實,有些圖片會因為垂直分辨率/水平分辨率不同而造成在WPF界面上顯示出現模糊。

WPF默認是96Dpi,但有些圖片可能是72DPI甚至更低或更高,這樣就會出現圖片顯示后被放大或縮小。

解決的方法:

通過綁定圖片的Source.PixelHeight與Source.PixelWidth並結合Stretch="Fill"或UseLayoutRounding="True"來限制圖片大小達到最佳效果。

<Image HorizontalAlignment="Left" Source="{StaticResource vs2}" VerticalAlignment="Top" 
  
Stretch="Fill"
  Width="{Binding Source.PixelWidth, Mode=OneWay, RelativeSource={RelativeSource Self}}"
  Height="{Binding Source.PixelHeight, Mode=OneWay, RelativeSource={RelativeSource Self}}" />

 

其他屬性設置:

Image的 RenderOptions.BitmapScalingMode屬性,里面幾個枚舉值


Unspecified使用默認位圖縮放模式,即 Linear。

LowQuality使用雙線性位圖縮放,雖然速度比 HighQuality 快,但輸出質量較低。 LowQuality 模式與 Linear 模式相同。

HighQuality使用高質量位圖縮放,雖然速度比 LowQuality 模式慢,但輸出質量更高。 HighQuality 模式與 Fant 模式相同。

Linear使用線性位圖縮放,雖然速度比 HighQuality 模式快,但輸出質量較低。

Fant使用超高質量 Fant 位圖縮放,雖然速度比所有其他位圖縮放模式都慢,但輸出質量更高。

NearestNeighbor使用最近鄰域位圖縮放,當使用軟件光柵器時,該縮放提供優於 LowQuality 模式的性能。 該模式常用於放大位圖。

MSDN:http://msdn.microsoft.com/zh-cn/library/system.windows.media.bitmapscalingmode(v=vs.100).aspx

 

圖標出現鋸齒

用UseLayoutRounding="True"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM