2010-06-14 93 views
5

越來越像我有這樣的代碼:參數無效時從流

   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:參數無效。我有一個解決這個問題的幾個鏈接(MSDN線程上的一個)被打破,所以我迷路了。

回答

-1

嘗試倒帶內存流一開始你寫字節到它之後。

ms.Seek(0, SeekOrigin.Begin); 

比它可以創建Image.FromStream

+0

同樣的問題。代碼是: MemoryStream ms = new MemoryStream(newbytes,0, newbytes.Length); ms.Seek(0,SeekOrigin.Begin); ms.Write(newbytes,0,newbytes.Length); 圖片img = Image.FromStream(ms); – duka1 2010-06-14 10:57:23

+0

你應該尋找ms.Write – 2010-06-14 10:58:16

+0

仍然是同樣的問題。我寫了這行代碼,並在寫入後剪切並粘貼。 – duka1 2010-06-14 11:01:37

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是一個圖像文件的內容的字節數組我的硬盤驅動器上。