无论如何要使互操作更快

时间:2011-03-30 15:42:31

标签: c# .net wpf interop performance

我被迫使用互操作来制作位图图像。可悲的是,它很慢......它让我想起了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());
    }

1 个答案:

答案 0 :(得分:1)

  

我被迫使用互操作来制作位图图像。

如果直接使用WPF类,它可能会更快。是什么“强迫”您还原为System.Drawing以生成图片?

话虽如此,主要的瓶颈通常是图形子系统问题。在WPF中,当图像操作很慢时,它可能并且通常是由于图形卡的限制。尝试检查更新的图形驱动程序,如果你使用XP,可能会禁用硬件加速,因为这可能会有所帮助。