4

誰かが私にc++または.NET用のシンプルで使いやすいPNGライブラリを勧めてもらえますか?必要なのは、大きなPNG画像(たとえば20000x20000)をロードし、各ピクセルの色を教えてください。

.NETのビットマップクラスは大きな画像を読み込めず、OutOfMemory例外をスローします。

私はグーグルでc++ライブラリを調べるのにかなりの時間を費やしましたが、それらはすべて私が必要とする以上のことを行い、それらの使用法は私には複雑すぎます。

4

4 に答える 4

7

PNGファイルのデファクトスタンダードライブラリはLibPNGです。これは世界で最もよく設計されたAPIではありませんが、チュートリアルの1つで手順を実行するだけでは、混乱するのはかなり困難です。

APIを独自のいくつかの単純な関数(またはクラス)でラップするのがおそらく最も簡単です。それが済んだら、行ってもいいはずです。

于 2013-02-22T13:06:21.840 に答える
6

これを試して:

http://nothings.org/stb_image.c

zlibの代わりに使用することもできます。

于 2013-02-22T13:08:12.723 に答える
3

C#がオプションの場合は、PNGCSを試してください。このシナリオでは(私自身、Javaで)行われ、行ごとに読み取りと書き込みが可能であり、すべてのデータをメモリに保持する必要はありません。

少なくともJavaで、巨大なファイル(30000 x 30000ピクセル、ディスクに2GB以上)を読み書きできることをテストしました

于 2013-02-22T14:14:32.110 に答える
2

C ++の場合:

使用できるライセンスに応じて、次の内容を確認できます。

DeVIL:http ://openil.sourceforge.net/(少し時代遅れですが、それでも良い選択です)(Linux、Win)

ImageMagick: http: //www.imagemagick.org/script/index.php(よく維持されている、すべてのプラットフォーム)

どちらもさまざまな入力形式と出力形式をサポートしています。

編集:Githubにもあります:https ://github.com/DentonW/DevIL

于 2013-02-22T13:05:53.527 に答える