2011-03-30 37 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