2014-01-20 55 views
0

我在Windows Phone上工作,我需要將手機中的圖像轉換爲字節數組,但問題是VisualStudio引發OutOfMemory異常。轉換圖片爲字節數組時Outofmemory異常

有什麼辦法可以避免這個錯誤?或者一種替代方式?

public static byte[] GetBytes(Picture p) 
{ 
    byte[] buffer=new byte[p.GetImage().Length]; 
    p.GetImage().Read(buffer, 0, buffer.Length); 
    return buffer; 
} 
+3

是的。不要加載如此大的圖像。也許你可以傳輸圖像,而不是一步載入內存。 – rae1

+0

你可以將圖像以塊的形式傳遞給字節數組,而不是一次全部傳遞給字節數組,這可能會有所幫助。你是從一個文件夾加載圖片嗎?還是隻在內存中? –

+0

該圖像位於一個文件夾中 – programmer23

回答

0

好吧,我已經找到了另一種方式來上傳圖片,現在,它不會引發異常。我決定通過大塊文件上傳文件,就像史蒂文米爾斯一樣。我想感謝大家的幫助。

+0

當然希望看到該解決方案。 .. – mindandmedia

0

的圖片太大的記憶..使用StreamSystem.IO以流並保存它。這是最有效的一個。

0

您需要使用的MemoryStream如:

public byte[] imageToByteArray(System.Drawing.Image imageIn) 
{ 
MemoryStream ms = new MemoryStream(); 
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); 
return ms.ToArray(); 
} 

How to convert image in byte array

相關問題