关于如何将内存中的图像显示在pictureBox控件的奇怪问题

xiapingsheng 2024-11-24 21:04:32

为何下面这段代码在Image.FromStream(ms )的地方报参数无效的错误

Mat img = Cv2.ImRead("test.jpg");
byte[] bytes = new byte[img.Total() * img.ElemSize()];
// 使用 Marshal.Copy 方法从非托管内存拷贝数据到托管数组
Marshal.Copy(img.Data, bytes, 0, bytes.Length);

MemoryStream ms = new MemoryStream(bytes1);

pictureBox1.Image = Image.FromStream(ms );

而下面这段代码就能正确工作

  byte[] bytes1 = File.ReadAllBytes("test.jpg");
MemoryStream ms = new MemoryStream(bytes1);

pictureBox1.Image = Image.FromStream(ms );

请问上面那段代码为啥不能正确工作,如果有一副图像在内存中,怎么以最高效率显示在pictureBox中

...全文
86 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡龙 2天前
  • 打赏
  • 举报
回复

picture只能加载图像格式,不能加载Mat。
内存图像还是内存数据你要分清楚。

111,012

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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