私は、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 (リストで言及するのを忘れていた) - パフォーマンスが気に入らなかった (控えめに言っても、テンプレートのみの実装のアイデアがかわいいことは認めざるを得ない)