8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

快速将 Bitmap 转换为 BitmapSource wpf

Mr P 2月前

82 0

我需要以 30Hz 的频率在图像组件上绘制图像。我使用以下代码:public MainWindow() { InitializeComponent(); Messenger.Default.Register (这,(bmp)=&...

我需要以 30Hz 的频率在组件上绘制图像。我 Image 使用以下代码:

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;
            }));
        });
    }

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

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

帖子版权声明 1、本帖标题:快速将 Bitmap 转换为 BitmapSource wpf
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Mr P在本站《winforms》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 那么你怎么知道 80% 的 CPU 消耗并非全部都用于每秒显示 30 个 BitmapSource,而且转换根本不需要时间?

返回
作者最近主题: