我可以看到这个问题被多次询问,但似乎没有一个是直截了当的回答。所以我发布了这个问题。
我正在从oracle数据库中读取BLOB到 photoByteArray [] 数组。 现在我只想将这个byte []保存到文件系统中 anyFileName.jpeg (或任何格式),但我得到"参数不是vaid &# 34;异常。
我尝试的是
int32
我的字节
很少有人建议在字节数组中添加一些标头,但是如何以及如何删除这种标头并不是直接的方式。
我做错了什么?
答案 0 :(得分:4)
当我使用这样的东西时:
Image img = Image.FromFile(@"C:\a.png");
byte[] arr;
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
arr = ms.ToArray();
}
using (var ms = new System.IO.MemoryStream(arr))
{
using (var img1 = Image.FromStream(ms,false,true)) // error thrown here as 'parameter is not valid'
{
img1.Save("D:\\anyFileName.png", ImageFormat.Png);
}
}
将图像文件转换为字节,并使用您的方法将该字节数组转换为图像,使其正常工作。
但是当我将该byteArray的某个字节更改为0(零)时(例如前15个字节),我得到了您的错误。
所以可以得出结论,你的字节数组确实没有正确的格式,一些概率是: