我有这段代码:
MemoryStream ms = new MemoryStream(newbytes, 0,
newbytes.Length);
ms.Position = 0;
ms.Write(newbytes, 0, newbytes.Length);
Image img = Image.FromStream(ms);
img.Save(@"C:\Users\gsira\Pictures\Blue hills5.jpg");
我在Image.FromStream(ms)调用时遇到此错误:
System.ArgumentException:参数无效。 在System.Drawing.Image.FromStream(Stream stream,Boolean useEmbeddedColorManagement,Boolean validateIma
我该如何解决这个问题?解决这个问题的一些链接(一个在MSDN线程上)被破坏,所以我迷路了。
答案 0 :(得分:1)
如果使用字节数组初始化MemoryStream(我假设newbytes
为),则不需要写入它。
您样本中对Write(newbytes, 0, newbytes.Length)
的调用完全是多余的。
var s = new MemoryStream(newbytes, 0, newbytes.Length);
var i = Image.FromStream(s);
i.Save(@"C:\Users\gsira\Pictures\Blue hills5.jpg");
上面的内容适用于我,其中newbytes
是我硬盘上图像文件内容的字节数组。
答案 1 :(得分:-1)
尝试在将字节写入其中后将内存流倒回到最开始。
ms.Seek(0, SeekOrigin.Begin);
可以创建Image.FromStream