1

コンパクトなフレームワークアプリケーションで大きな画像(200 DPIのA4画像、PNG形式で問題ありません)を生成する必要があります。メモリの制限により、これを標準的な方法で行うことは不可能です(このような大きな画像はOOMExceptionをスローします)。

ファイルベースのストリームイメージ生成を提供するライブラリはありますか?

または、標準のビットマップアプローチを使用して、多数の小さい画像のストライプ(各ストライプは大きい画像の行を表す)を生成できますが、後でそれらをマージする必要があります-多くの小さい画像を1つの大きい画像にマージする方法はありますか?大きなビットマップインスタンスをインスタンス化します(これもOOMを引き起こします)?

4

3 に答える 3

2

私自身も同様のニーズがあり、自分のライブラリを書くのをやめました。PNGJ便利だと思うかもしれませんが、Javaですが、C#への移植は簡単です(他のライブラリから完全に独立している必要があります)。巨大な画像を処理するために最適化された、行指向の、かなり低レベルのPNG画像(パレット画像を除く)の書き込みと読み取りを行います。ダウンロードにはいくつかの例があります。

更新:ここでC#を利用できるようにしました:PNGCS

于 2010-05-04T12:37:28.050 に答える
1

これは興味深いです...私はあなたのためにいくつかのグーグルをしました、そして私が見つけた唯一の有用なものはこのOpenNETCFスマートデバイスフレームワークです。クラスライブラリリファレンスはこちらですImagingFactoryClassをご覧になることをお勧めします。CreateImageEncoderToStreamメソッドが役立つ場合があります。

あなたがあなたのためにそれをするライブラリを持っていれば、マージアプローチはクールでしょう。PNGの仕様を調べましたが、あまり期待できません。

幸運を祈ります。これがお役に立てば幸いです。

于 2010-05-04T10:03:06.113 に答える
1

PNGストリームエンコーディングクラスの簡単な基本実装を作成しました。現時点では8bppとグレースケールしかサポートしていませんが、私のシナリオではこれで十分です。RGBやより多くの色深度をサポートするように、クラスを拡張するのは非常に簡単です。

http://gist.github.com/393409

于 2010-05-07T13:26:09.523 に答える