本文章使用的摄像头是OV2640,可以直接输出JPG格式的图片,摄像头不多说,开发板是ESP32-CAM,串口输出数据给上位机,C#写的,VS2017.
1、JPG数据图片显示和保存
JPG格式的图片只要知道开头数据0xFF 0xD8,结尾数据0xFF 0xD9即可显示和保存。
上图和代码:
主要实现:
if (receiveData[0] == 0xFF && receiveData[1] == 0xD8)
{
if (revCount >= 1024)
{
this.Invoke(new EventHandler(delegate
{
try
{
ms = new MemoryStream(receiveData);
Image img = Image.FromStream(ms);
this.pictureBox1.Image = img;
label3.Text = "PixelFormat:" + img.PixelFormat.ToString();
label4.Text = "Size:" + img.Size;
}
catch (Exception ex)
{
label7.Text = ex.Message;
}
finally
{
}
}));
}
}
2、GRB565数据图像显示和保存
RGB565输出16位图,一个像素两个字节,R5位、G6位、B5位。这对数据解析很重要,不理解的自行学习吧!
BMP图像格式需要了解一下,不知道网上很多,这里不多说了。
图和代码:
主要实现:将RGB565像素数据解析成24位RGB数据这是重点。
else if (rab_RGB.Checked)
{
byte R = 0, G = 0, B = 0;
B