相关疑难解决方法(0)

快速将Bitmap转换为BitmapSource wpf

我需要Image在30Hz处在组件上绘制图像.我用这个代码:

public MainWindow()
    {
        InitializeComponent();

        Messenger.Default.Register<Bitmap>(this, (bmp) =>
        {
            ImageTarget.Dispatcher.BeginInvoke((Action)(() =>
            {
                var hBitmap = bmp.GetHbitmap();
                var drawable = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                  hBitmap,
                  IntPtr.Zero,
                  Int32Rect.Empty,
                  BitmapSizeOptions.FromEmptyOptions());
                DeleteObject(hBitmap);
                ImageTarget.Source = drawable;
            }));
        });
    }
Run Code Online (Sandbox Code Playgroud)

问题是,使用此代码,我的CPU使用率约为80%,如果没有转换,则大约为6%.

那么为什么转换位图这么久呢?
是否有更快的方法(使用不安全的代码)?

c# wpf copy bitmap bitmapsource

17
推荐指数
2
解决办法
2万
查看次数

标签 统计

bitmap ×1

bitmapsource ×1

c# ×1

copy ×1

wpf ×1