2011-03-30 32 views
0

我被迫使用interop來製作位圖圖像。可悲的是它很慢...它讓我想起了Windows Me .....無論如何,使互操作更快

而且我知道我可以將圖像存儲到一個文件夾中,稍後重新使用它們......但我不希望這樣的速度。 .. 有任何想法嗎 ?

這是我的代碼。

private BitmapSource ConvertBitmap(Bitmap source) 
    { 
     return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
       source.GetHbitmap(), 
       IntPtr.Zero, 
       Int32Rect.Empty, 
       System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); 
    } 
+2

這是WPF,是嗎?適當地標記你的問題。這幾乎肯定不是互操作性在這裏很慢,而是你所調用的函數。 – 2011-03-30 15:44:45

+0

是啊對不起,我以爲我做了...更正 – 2011-03-30 16:55:21

回答

1

我被強迫使用互操作,使位圖圖像。

如果您直接使用WPF類,它可能會更快。什麼「強制」你恢復到System.Drawing生成你的圖像?

這就是說,主要的瓶頸往往是一個圖形子系統的問題。在WPF中,當圖像操作速度較慢時,它可能(通常是)由於圖形卡的限制。嘗試檢查更新的圖形驅動程序,如果使用XP,可能會禁用硬件加速,因爲這可以幫助很多。

+0

這就是強迫我[link](http://stackoverflow.com/questions/5461306/wpf-adding-dynamic-bitmap-to-an-image) – 2011-03-30 16:56:54

+0

@Reza:我只是在那裏回答你,並說明如何在沒有GDI +的情況下做到這一點。 – 2011-03-30 17:01:14

+0

我將不得不測試圖形卡。目前還不行,所以不能真正說出它是否能解決我的問題。我正在更多地尋找我可以採用的替代路線。 – 2011-03-30 17:15:09