字节数组到图像异常

时间:2018-11-11 00:14:04

标签: c# image

我无法通过常见方法将字节数组转换为图像,例如:

using (var ms = new MemoryStream(byteArrayIn))
{
    return Image.FromStream(ms); ->exception
}

System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
Image img = (Image)converter.ConvertFrom(ImgInBytes); -> exception 

例外参数无效

此外,我使用了一个4字节的数组长度,该长度由零值开始。

它应该显示为黑色图像,但没有显示

1 个答案:

答案 0 :(得分:2)

  

我使用了一个4字节的数组长度,该长度由零值开始。

API需要有效的图像流;值为零的4个字节不是有效的图像流。该方法将检查流,尝试识别图像格式(流没有文件名的任何概念,流与文件大致相当)-它不仅在寻找像素数据。这意味着它将寻找它能识别的图像头(例如,png总是以字节值137 80 78 71 13 10 26 10开头);一旦确定了格式,就需要解码图像标题(尺寸,颜色深度,可能是调色板等),然后最终可能会有一些像素数据-或可能没有,如果它不是像素格式(可以是矢量图像格式)。所以;除了一些像素数据以外,还有很多 需要考虑。

如果您想要黑色图像:也许以Bitmap开头-也许会看到this answer