2014-10-01 206 views
0

我正在開發Windows Phone應用程序(由於技術原因,它必須是WP7)。我需要顯示原始存儲爲高分辨率PNG的圖像,但它們顯示的尺寸較小。我在<Grid>內部使用了<Image>星號行高。WP7:如何平滑縮放圖像?

問題是,縮小圖像看起來有點波濤洶涌(好像縮小算法不好),但我似乎無法找到一種方式來順利顯示它們,而不事先知道圖像的顯示大小和以編程方式生成新圖像。

是否有一個屬性可以更改,以便應用程序使用不同的縮小算法,因此圖像僅在XAML中定義,或者我堅持必須在後面的代碼中編寫邏輯,以便圖像看起來平滑?

更新:我有一些截圖顯示的問題。

  1. 只要內部的<Grid>

Choppy logo

一個 <Image>
  • 一個<ViewBox>內的<Image>內部的<Grid>
  • Choppy logo with ViewBox

    ViewBox可以幫助縮放,但它使用的算法是相同的,這對我來說根本沒有用。

    +0

    聽起來像是[視框(http://msdn.microsoft.com/en-us/windows/apps/windows.ui.xaml.controls.viewbox) – 2014-10-01 19:18:06

    +0

    作爲作業您需要處理的解決方案數量有限,可以從服務器下載所需大小的圖像,並使用更好的重採樣算法進行準備? – 2014-10-01 19:19:08

    +0

    我可以在服務器上對它們進行預處理,但如果這完全可以通過XAML語法來完成,我也會很好奇。如果它不能,那麼我會使用你的解決方案。 – 2014-10-01 19:24:36

    回答

    0

    見下文後重新大小的圖像,這可能幫助你

    的Microsoft.Phone組件包括WriteableBitmap class, SaveJpeg()。 SaveJpeg簽名如下所示: 您可以指定圖像高度和寬度以進行縮放。

    public static void SaveJpeg(
        this WriteableBitmap bitmap, 
        Stream targetStream, 
        int targetWidth, 
        int targetHeight, 
        int orientation, 
        int quality 
    ); 
    

    Resizing Images in Windows Phone 7