36

私は、C++ 用のシンプルで小さいが堅牢で高速な (包括的ではない!) イメージ ライブラリを探していました (C++ バージョンが利用できない場合は、C で十分です)。

私が探している主な機能は次のとおりです。

  • 無料(オープンソースはプラス)
  • スピードのために構築
  • 巨大な機能の肥大化はありません (ImageMagik真に包括的ですがマンモスである のような)
  • 小さなメモリフットプリント
  • ロード/保存、サイズ変更、フォーマット間の変換などの絶対最小限の機能のみをサポートします。派手なものは何もない
  • 「壊れた」ファイルのエラー回復 (stb_image.cエラー回復がかなり貧弱な とは異なります)
  • MSVC と gcc に優しい (私CxImageは何年も使用していましたが、最新バージョンでは MSVC 2010 で問題が発生しており、その活発な開発とサポートは今では終了しているように見えるので、取り下げようとしています。 )
  • 直接、または次のような一般的なライブラリを使用して、JPEG2000 などの一般的な最新の形式をサポートする必要があります。libpng
  • 画像を表示するために使用する予定はないので、DirectX か OpenGL かは気にしないでください。Web サイト用に画像をファイル処理するためだけに使用します。
  • 静的リンクと動的リンクの両方をサポートしていることはプラスです
  • スレッディングのサポートは大きなプラスです

私が調べて、何らかの理由で却下したライブラリ:

  • CxImage (アクティブな開発はもうありません)
  • ImageMagik - 大きすぎる (そして遅い)
  • stb_image.c - 不適切なエラー処理、十分な画像形式をサポートしていません
  • DevIL (まだ却下されていませんが、あまり調べていません。SO に関する同様の投稿で数分前に知ったばかりです) - サイズと機能セットに基づいて、私が必要としているものには非常に有望に見えますが、
  • FreeImage (DevIL と同じ - すぐに見ていきますが、私の好みではサイズが少し大きいです)
  • SOIL (stb_image.c と同じ)
  • TimThumb - C/C++ ではなく PHP です

要するに、最低限の機能を備えていることを犠牲にして、できるだけ小さく、できるだけ高速なものが欲しいだけですが、これまでのところ適切な候補をまだ見つけていません。

このコミュニティからの提案をお願いします。ただし、上記の制約を念頭に置いてください。「X を試しましたか?」という形式の回答をスローするのは問題ないと思います。ここで、「X」は私のニーズの半分を満たしていません:)

編集:DevILをもう少し調べてみると、それが私が必要としている可能性があるようです。軽く、小さく、頑丈です。あとは、それが機能することを確認するだけです。ああ、CImage (リストで言及するのを忘れていた) - パフォーマンスが気に入らなかった (控えめに言っても、テンプレートのみの実装のアイデアがかわいいことは認めざるを得ない)

4

2 に答える 2

12

libpngjpeglib (および、サポートする必要があるフォーマット用の他のすべての低レベル ライブラリ) に関する小さなライブラリを作成することを強くお勧めします。それほど難しくなく、必要なすべての機能をコーディングできます。

別の方法として、そのライブラリ用に既に存在する優れた C++ ラッパーを使用することもできます。ここではいくつかの例を示します。

于 2012-08-05T14:59:14.587 に答える
11

CImgライブラリを見てください。これは 1 つのヘッダー ファイルにすぎません

于 2012-08-05T12:55:54.637 に答える