C# 将字节数组转换为图像将抛出;参数无效。”;

C# 将字节数组转换为图像将抛出;参数无效。”;,c#,bytearray,varbinary,C#,Bytearray,Varbinary,我正在尝试将几个字节数组(以varbinary(8000)的形式存储在SQLServer2008R2中)转换为图像,以便将它们附加到PDF文件(下面是数据示例)。当从MemoryStream创建图像时,我不断得到“参数无效”。有什么帮助吗 MemoryStream memoryStream = new MemoryStream(byteArray); Image image = Image.FromStream(memoryStream); Bitmap bitmap = new Bitmap(

我正在尝试将几个字节数组(以varbinary(8000)的形式存储在SQLServer2008R2中)转换为图像,以便将它们附加到PDF文件(下面是数据示例)。当从MemoryStream创建图像时,我不断得到“参数无效”。有什么帮助吗

MemoryStream memoryStream = new MemoryStream(byteArray);
Image image = Image.FromStream(memoryStream);
Bitmap bitmap = new Bitmap(image);

0x0A020101000000005E006500FA00FA0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C1C070007C2FFC1FE1FC7FFC1F03FC1FC7FFC1F807C1FFC1FE3FC8FFC1F3C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3FF3E3FC2FFC1 FFFCF3 3 3 FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF3 3 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 3 3 3 3 3 FFFFFFFFFFFFFFFFFFFF3 3 3 3 3 3 3 3 3 3 3 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 3 3 3 3 3 3 3 3 3 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 3 3 3 3 3 3 3 3 3 3 3 3 E3FC2FFCFCFC3 3 FFC3 FFC3 FFC3 FFC3 FFC3 FFC3 FFC3 FFC3 FFC3 FFF3 FFF3 FFF3 FFF3 FFFC3 FFFF3 FFFC3 FFFC3 FFC3 FFC3 FC3 FC3 FC3 FC8 FC8 F8 FC8 F8 F8 FC8 FC8 F8 F8 F8 8 F8 F8 FC8 F8 FC8 F8 FC8 F8 F8 F8 F8 F8 F8 F8 F8 F8 FC8 F8 F8 F8 F8 F8 8 F8 F8 F8 F8 8 F8 8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 8 F8 F8 F8 F8 F8 F8 F8 F3FF9FC2 FFFFFC3 FFFFC3 FFFFC3 FFFFC3 FFFFFC3 FFFFFF3 FFFFFFFC3 FFFFFFFC3 FFFFFC3 FFFFFFFFFFFFFFFFFFFFFC3 FFFFC3 FFFFFFFFFFFFFFFFFC3 FFFFFFC3 FFFFFFFFFFFFFFF3 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 3 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2FFC1F1C3FFC1FE7FC2FFC1F1F83FC2FFC1F3FC3FC2FFC1F3FFC1F9C3FFC1F83FC2FC1F3FFC1F3FFC1F83FC2FC1F1F3FFC1F83FC2FC1F1F3FFC1F7C3FFC1F83FC2FC1F1FC1F3FC3FC2FC1F003FC3FC3FC3FFC1F83FC2FC1F88C20001C4FFC1F83FC2FC2FC1F20003CFC3FC2FC2FC3FC1F1FC3FC3FC3FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC13FFC1FC1F1C1F3FC9FFC1C3C1FE3FC9FFC1DFC1FE3FC9FFC1DFC1FE3FC9FC1FE3FC8FFC1E07FC1FE3FC8FFC1C1C1FFC1FE1FC7FF001FC1FC1FC1FC1FE80C700C3FFC1FE1C0C700C3FFC1FE

首先,确保您知道编码,因为Image.FromStream方法只知道有限的格式

确保MemoryStream的位置正确设置为0,而不是末尾-否则,任何从末尾开始的读取都将显示为空,而不是从开头开始

另外,请注意

此构造函数不公开基础流。GetBuffer引发UnauthorizedAccessException

因此,这可能是由位图处理底层流的某些方式造成的。如果需要,尝试创建一个空的memorystream,将字节复制到其中,然后重置位置

MemoryStream memoryStream = new MemoryStream();
foreach(var b in byteArray) memoryStream.WriteByte(b);
memoryStream.Position = 0;
Image image = Image.FromStream(memoryStream);

您提供的字节数组长度为1117字节。这不是4或3可以平均整除的,所以我很确定图像不是原始字节,实际上是以某种图像格式编码的

FromStream()方法无法在不知道格式的情况下解码编码图像,并且您提供的字节数组没有指定该格式。因此,您提供的参数无效。如果知道图像的格式,可以尝试在图像的其余部分之前向字节数组中插入一个头,看看这是否有帮助。奇怪的是,你有图像,但没有它的标题,尽管它看起来也不是base-64字符串

如果不知道图像格式,就很难将这些字节数组转换为图像。有没有办法让你知道它们是什么?如何存储检索到的图像数据?

这是一个问题

% file output 
output: PCX ver. 2.8 image data, with palette
在linux下,我刚刚将十六进制流从纯文本转换为名为
output

回音 “0A020101000000005E006500FA00FA0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C1C07000FC2Fc1Fc80C70007C2FFC1FE1FC7FFC1F03FC1Fc7FFC1F807C1FFC1FE3FC8FFC1F3FFC1FEFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCCCCCCCCCCCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E3FC2FFC1F3.3 FFFf3 3 FFFFFFFFFfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2FFC1FFC3 FFC3 FFFC3 FFC3 FFC3 FFC3 FFC3 FFC3 FFFC3 FFFC3 FFFF3 FFF3 FFF3 FFFF3 FFFF3 FFFF3 FFC3 FFC3 FFC3 FC3 FC3 FC3 FC8 F8 F8 F8 F8 F8 F8 F8 F8 FC8 F8 F8 F8 F8 F8 F8 8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 8 8 8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 8 8 8 F8 F8 F8 F8 F8 F8 F8 8 8 F8 F8 8 F9e3fc2FFC1F3FF87C3FFC1CE3FC2FFC1F3FC1F1C3FFC1CE3FC2FFC1F3FFC1F3FC1F3FFC1F9C3FFC1EE3FC2FFC1F3FFC1FCC3FFC1E43FC2FFC1F3FFC1FE7FC2FC1E43FC2FFC1F1F3FFC1F3FC2FC1FC4FFC1FFC1F03FC2FFC1FC4FFC1FC1FC1FC4FFC1FFC1FC2FC2FC1FC1FFC13FC2FC2FC1FC4FFC1FFC1FC1FC1FC2FC2FC1FC1FC12FC2FC1FC12FC12FC1FC1FFC13FFC12FC2FC2FC2FC1FC1FFC12FC1FFC13FFC13FFC12FC1FC1FC1FC2FC2FC1FC2FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1FC1