目前,我試圖開發一個應用程序,採用的是從Linux下C傳輸到我們一個字節數組語言程序跨TCPClient(流)並將其重新組裝成image/jpg。 「發送」應用程序是由非現場開發人員開發的,他聲稱圖像在測試環境(所有Linux)中沒有任何問題或錯誤重新組裝成圖像...
但是,我們並不那麼幸運。我(相信)我們成功地獲取了所有發送的數據,並將其存儲爲字符串(讓我們追加流直到它完成),然後將其轉換回字節[]。這似乎工作正常...
但是,當我們從字符串[]我們得到流(和我們的字符串程序集),並嘗試將其轉換爲圖像使用System.Drawing.Image.FromStream ()我們得到錯誤....任何人有任何想法我們做錯了什麼?或者,有沒有人知道這是一個跨平臺的問題?我們正在爲Windows XP和C#.net開發我們的應用程序,但非現場開發人員在c和Linux中完成了他的工作......或許關於每個操作系統如何將圖像隱藏到字節數組中,可能會有所不同?
無論如何,這裏是將我們收到的ByteArray(從TCPClient流)轉換爲圖像的代碼。此代碼的工作,當我們從測試機我們建立上XP上運行發送圖像,而不是從Linux中...
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] imageBytes = encoding.GetBytes(data);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, false);
<-- DIES here, throws a {System.ArgumentException: Parameter is not valid.} error
任何意見,建議,理論,或幫助將不勝感激!請告訴我???
祝你一切順利!提前致謝!
格雷格
你能不能給我們的價值觀前100個字節左右? – 2010-03-30 22:31:12