c#把从摄像机发过来的数据流转换成图片用picturebox显示出来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#把从摄像机发过来的数据流转换成图片用picturebox显示出来相关的知识,希望对你有一定的参考价值。
如:public static extern System.Int32 TMCC_CapturePictureToBuffer(IntPtr hTmCC, System.String pFmt,System.IntPtr lpBuffer, ref int iBufferSize);
这个函数的在c++的源码是/**
*函 数: TMCC_CapturePictureToBuffer
*说 明: 当前显示视频抓图到指定缓冲
*参 数: hTmCC为控制句柄,lpBuffer为存放图片缓冲,iBufferSize为缓冲大小(输入为缓冲大小,输出实际数据大小),pFmt为格式
*返回值: 成功返回TMCC_ERR_SUCCESS,失败返回其它值
*/
int TMCC_CapturePictureToBuffer( HANDLE hTmCC, const char* pFmt, void* lpBuffer, int* iBufferSize );
现在我要把那个缓冲转换成byte数组,然后再保存图片,我该怎么办啊?急用。。。
试一下用构建一个stream的方法。
c# 图片转二进制流
RT,比如说如何把picturebox1的图片转成流形式
参考技术A 你可以把它序列化,如下using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
private void Form1_Load(object sender, EventArgs e)
BinaryFormatter binaryFormatter = new BinaryFormatter();
Bitmap bit = pictureBox1.Image as Bitmap;
MemoryStream memoryStream = new MemoryStream();
binaryFormatter.Serialize(memoryStream, bit);//序列化
byte[] byteArr = memoryStream.ToArray();//这就是你要的
Bitmap bit = binaryFormatter.Deserialize(memoryStream);//反序列化
memoryStream.Dispose(); 参考技术B System.IO.MemoryStream s = new System.IO.MemoryStream();
picturebox1.Image.Save(s, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] Data=s.ToArray();本回答被提问者采纳
以上是关于c#把从摄像机发过来的数据流转换成图片用picturebox显示出来的主要内容,如果未能解决你的问题,请参考以下文章
opencv 如何能把从摄像头中抓取的两帐图片进行精确比较?
c# 从数据库中读取图片数据流,然后转换成图片显示到网页上?