2010-05-04 125 views
1

我需要在我的緊湊框架應用程序中生成大圖像(200 DPI下的A4圖像,PNG格式將會很好)。由於內存限制,這是不可能以標準方式完成的(這樣的大圖將引發OOMException)。如何在緊湊框架中生成大圖像

是否有任何提供文件備份流圖像生成的庫?

或者我可以使用標準的位圖方法生成很多較小的圖像條紋(每個條紋表示一行大圖像),但是我需要將它們合併在一起 - 是否有任何方法可以將許多較小的圖像合併爲一個大而不必實例化大的位圖實例(這又會導致OOM)?

回答

1

我只是做了PNG流編碼類的快速基本實現 - 它支持只是此刻雖然8bpp的和灰度,但是這足以讓我的方案。擴展類以支持RGB和更多顏色深度應該很容易。

http://gist.github.com/393409

1

這很有意思......我爲你做了一些Google搜索,我發現的唯一有用的東西是OpenNETCF Smart Device Framework。類庫參考是here建議您查看ImagingFactoryClass。 CreateImageEncoderToStream方法可能很有用。

如果你有一個圖書館可以爲你做,合併方法將很酷。我看了一下PNG的規格,它不是很有希望。

祝你好運,我希望這會有所幫助。

+0

我已經使用OpenNetCF自衛隊,但忽略了CreateImageEncoderToStream方法。將看看它,並報告任何進展.. – Buthrakaur 2010-05-04 12:20:14

2

我有一個類似的需求我自己,我結束寫我自己的圖書館。 PNGJ您可能會發現它很有用,它是Java,但它應該很容易移植到C#(完全獨立於其他庫)。它會寫入並讀取PNG圖像(除調色板以外),面向行的,相當低級別的,用於處理巨大圖像的優化。下載中有一些例子。

更新:我做了可以在這裏找到一個C#:PNGCS

+0

看起來很有希望 - 我會嘗試重寫它。淨,如果我沒有找到任何其他方法如何解決這個問題。謝謝 – Buthrakaur 2010-05-04 12:48:35