Image控件的BitmapSource加载WriteableBitmap速度慢

GaoAlex123456 2025-08-13 15:43:45

WriteableBitmap是相机采集的IntPtr来转换的

internal WriteableBitmap CreateBitmap(WriteableBitmap bitmap, int width, int height, IntPtr ptr)
        {
            try
            {
                byte[] rgbData = new byte[width * height * 3];
                Marshal.Copy(ptr, rgbData, 0, rgbData.Length);
                if(bitmap == null ) return null;
                bitmap.Lock(); 
                bitmap.WritePixels(new Int32Rect(0, 0, width, height), rgbData, width * 3, 0);
                bitmap.AddDirtyRect(new Int32Rect(0, 0, width, height)); 
                bitmap.Unlock(); 
                return bitmap;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return null;
            }
        }

图片是双屏幕显示的

ShowImage.Source = MicroscopeCamera.Instance.writeableBitmap;
seconDivest.ShowImage.Source = MicroscopeCamera.Instance.writeableBitmap;

1080p的画面,这时帧率只有19帧每秒,如果去掉一个屏幕显示就能达到预期的30帧每秒

而且还发现一个问题就是使用VS Debug直接F5运行后双屏也能达到预期的30帧每秒,但是使用Ctrl + F5运行就不行,最多只能达到19帧。这是什么原因,如何解决

...全文
25 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

8,758

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧