采集到的图像byte[]转换image,显示图像全黑,但是没有报错(确定byte[]数组非空)

.Net技术 码拜 7年前 (2017-05-06) 1772次浏览
本人通过一路视频服务器采用sdk函数采集的图像byte[]能转换为image显示,而通过四路视频图像的采集到的byte转成image全黑。且原采集的图像大小为704*576,长度为64241;而后来采集的长度为15081,但是大小为1280*720.感觉不是很对应。
通过视频服务器的sdk采集得到图像,byte[] st, 其中len为图像长度。bytes转image的程序如下。
MemoryStream ms = new MemoryStream(st);
ms.Write(st, 0, len);
Image tmp= Image.FromStream(ms);
pictureBox1.Image = tmp;
// Size tmpsize = tmp.Size;
前后的tmp参数与显示效果如下图 (显示图右侧为显示视频中采集到的一帧图)
采集到的图像byte[]转换image,显示图像全黑,但是没有报错(确定byte[]数组非空)[/b]
采集到的图像byte[]转换image,显示图像全黑,但是没有报错(确定byte[]数组非空)
采集到的图像byte[]转换image,显示图像全黑,但是没有报错(确定byte[]数组非空)
采集到的图像byte[]转换image,显示图像全黑,但是没有报错(确定byte[]数组非空)
解决方案

10

st是你采集到的图像数据吗?假如是的话,这样就可以了
MemoryStream ms = new MemoryStream(st);
Image tmp= Image.FromStream(ms);

10

这个问题涉及硬件使用。
既然一路可显示,四路就全黑,八成是四路采集回来的byte[]里面的图像格式并不是一个图像,可能是4路图像的合成图,所以当一幅图来显示肯定出错。
因此,必须先了解四路采集来的byte[]格式到底是什么,才能进行下一步操作。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明采集到的图像byte[]转换image,显示图像全黑,但是没有报错(确定byte[]数组非空)
喜欢 (0)
[1034331897@qq.com]
分享 (0)