web-dev-qa-db-ja.com

軽量C ++画像ライブラリ

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

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

  • 無料(オープンソースはプラスです)
  • 速度のために構築
  • 巨大な機能拡張はありません(ImageMagikのように、本当に包括的ですがマンモスです)。
  • 小さなメモリフットプリント
  • ロード/保存、サイズ変更、フォーマット間の変換など、最小限の機能のみをサポートします。何も豪華ではない
  • 「壊れた」ファイルのエラー回復(stb_image.cとは異なり、エラー回復はかなり不十分です)
  • MSVCとgccに優しい(私は何年もCxImageを使用していましたが、最新バージョンではMSVC 2010で問題が発生しており、そのためのアクティブな開発とサポートは今ではなくなっているようです。ドロップしようとしています)
  • 直接またはlibpngなどの一般的なライブラリを使用して、JPEG2000などの一般的な最新形式をサポートする必要があります。
  • 画像の表示に使用するつもりはないので、DirectXとOpenGLのどちらでも構いません。Webサイト用にファイル処理するだけです。
  • 静的リンクと動的リンクの両方をサポートしていることはプラスです
  • スレッドのサポートは大きなプラスです

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

  • CxImage(アクティブな開発はもうありません)
  • ImageMagik-大きすぎる(そして遅い)
  • stb_image.c-不正なエラー処理、十分な画像フォーマットをサポートしていません
  • DevIL(まだ却下されていませんが、あまり見ていません-SOに関する同様の投稿で数分前に知りました)-そのサイズと機能セットに基づいて、私が必要とするものに対して非常に有望に見えます
  • 写真素材(DevILと同じ-間もなく見ていきますが、私の好みに合わせてサイズが少し大きいです)
  • SOIL(stb_image.cと同じ)
  • TimThumb-これはPHPであり、C/C++ではありません

要するに、機能を最小限に抑えて、できるだけ小さいものをできるだけ早く欲しいのですが、今のところ適切な候補を見つけることはできていません。

このコミュニティからの提案はありますか?しかし、上に挙げた制約を覚えておいてください。「Xを試しましたか?」というフォームの回答を投げるのは問題だと思います。 「X」は私のニーズの半分を満たしていません:)

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

29
YePhIcK

libpngjpeglib (およびサポートする必要のある形式のその他すべての低レベルライブラリ)の周りに小さなライブラリを書くことを強くお勧めします。それほど難しくはなく、必要なすべての機能をコーディングできます。

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

11
Gigi

CImg ライブラリを見てください。これは単一のヘッダーファイルです。

10
qehgt