2014-07-12 41 views
-1

問題如何在不進行抗鋸齒的情況下顯示縮放圖像?

如何在不應用抗鋸齒的情況下快速縮放XAML中的圖像?

背景

我試圖做一個像素的編輯器作爲Windows 8 XAML/C#應用程序。我使用的是c#/ XAML,因爲我的大部分經驗都是使用c#/ WPF。

  • 方法1: WriteableBitmap的+圖像控制。

    最初,我使用了一個WriteableBitmap來存儲和編輯圖像。該圖像顯示在調整大小的XAML圖像控件中。問題是由於抗鋸齒,圖像不能正確縮放。 (XAML似乎並不提供在WPF可用的BitmapScalingOptions)

    anti-aliased version

  • 方法2:重繪WriteableBitmap的+圖像控制。

    接下來我嘗試編寫我自己的縮放比例,在這裏我將原始圖像寫入較大的WriteableBitmap,以便縮放後的圖像像素化。縮放的圖像然後呈現在XAML圖像控件內。這個過程很慢並且效率低下。

    enter image description here

  • 方法3: SharpDX +的Direct2D ??

    我很確定SharpDx,SurfaceImageSource和Direct2d之間存在解決方案。事件仍然存在,我不能完全弄清楚如何在Windows.UI.Xaml圖像控件中顯示SharpDx.WIC.Bitmap,並且通常會在文檔中迷失方向。

實現我想要的結果的推薦設置究竟是什麼?是否有可用的c#樣本可能指向我正確的方向?

回答

0

我不知道你的意思是用鼠標調整它的大小,或者只是點擊按鈕來自動縮放到預定的大小。

但是你可以做的事情是使用圖像面板,然後將它設置爲image.Stretch = Stretch.Fill;,所以如果你重寫併爲圖像面板的Resize事件創建一個方法,你的圖像將採用大小來填充圖像面板。

+0

由於上面提到的抗鋸齒,此方法不起作用。我會在我的問題中添加更多細節... – Amanduh