2009-02-02 26 views
1

我有一個我試圖序列化的valueetype對象(通過BinaryFormatter),但在這個對象中有3個Bitmaps,當序列化對象拋出一個「一般gdi +異常」 (沒有認真,這是例外)。在自定義對象中序列化一個位圖

這些位圖必須被序列化到文件中(而不是隻存儲它們的相對位置並將圖像與其他序列化對象一起傳輸)。

對象看起來很像:

[Serializable] 
public struct MyObject 
{ 
    public String whatever; 
    // ... 
    public Bitmap img1; 
    public Bitmap img2; 
} 

和序列化它像這樣:

BinaryFormatter bFormatter = new BinaryFormatter(); 
fs = new FileStream(m_ContractFolder + filename + ".xtn", FileMode.OpenOrCreate); 

bFormatter.Serialize(fs, contract); 

我周圍的一派,大部分我所發現的是所有xmlserialization(不理想在這個情況下)。我不知道還有什麼要做。

+0

「公共類結構」 - 這是它? – 2009-02-02 23:03:03

回答

0

我在克隆和縮略圖圖像時遇到過類似的情況。不幸的是,這已經過了幾年了,我不記得細節,但它必須處理文件句柄和GDI,並將它們作爲該Image對象的源代碼。

我解決了這個問題,從MemoryStream加載圖像而不是實際的源碼流。如果圖像在文件中,請首先將文件內容加載到MemoryStream中。然後從MemoryStream中加載圖像。

相關問題