图片处理
客户端把相机采集到的图像数据通过网络发送给服务器,在服务器端把图像数据放在字节数组中,然后把这些数据转化成BMP图片,在picturebox上显示出来,但是在picturebox上会显示两张甚至多张相同的图片,不知为何,是不是读取图像像素字节顺序有啥问题,求大神解答,急用!下面是我写的字节数组转换成图片的函数:
public static Image byteArrayToImage(Byte[] bt)
{
//bt是我接收到的网络图片数据
byte[] raw_data = new byte[640 * 480 * 3];
for (int i = 0; i < bt.Length; i++)
{
raw_data[i] = bt[i];
raw_data[i + 1] = bt[i];
raw_data[i + 2] = bt[i];
}
GCHandle hObject = GCHandle.Alloc(raw_data, GCHandleType.Pinned);
IntPtr pObject = hObject.AddrOfPinnedObject();
if (hObject.IsAllocated)
{
hObject.Free();
}
BitmapData bmpData = new BitmapData();
bmpData.Width = 640;
bmpData.Height = 480;
bmpData.Scan0 = pObject;
bmpData.PixelFormat = PixelFormat.Format24bppRgb;
bmpData.Stride = 640;
Bitmap bitmap = new Bitmap(bmpData.Width, bmpData.Height, bmpData.Stride, bmpData.PixelFormat, bmpData.Scan0);
return bitmap;
}