[英]byte array to image save throws an error like “Parameter not valid” in C#
我可以看到這個問題被問過很多次,但似乎沒有一個簡單的答案。 所以在發布這個問題。
我正在從Oracle數據庫中將 BLOB讀取到photoByteArray []數組中。 現在,我只想將此byte []作為anyFileName.jpeg (或任何格式)保存到文件系統中,但出現“ Parameter not vaid ”參數異常。
我試過的是
using (var ms = new System.IO.MemoryStream(photoByteArray))
{
using (var img = Image.FromStream(ms)) // error thrown here as 'parameter is not valid'
{
img.Save("D:\\anyFileName.jpg", ImageFormat.Jpeg);
}
}
我的字節
很少有人建議在字節數組中添加一些標頭,但是如何以及多少去除這種標頭並不是直接的方法。
我究竟做錯了什么 ?
當我使用這樣的東西:
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個字節)時,我得到了您的錯誤。
因此可以得出結論,您的字節數組確實格式不正確,其中一些概率是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.