2009-07-15 10 views
8

私はSDLからDevilまですべてを試しましたが、それらはすべて様々な理由で失敗しました。私はIL/ilut.hをインクルードして、すべてをリンクして、他のヘッダを含めても、画像をロードするために必要な関数を定義していないという奇妙な問題を抱えています。 OpenGLテクスチャ(USE_OPEN_GLが定義されていないもの)私はビットマップやPNGを私が簡単にopenglに変換できる形式、または悪魔の問題への解決策をロードするための他のlibを探しています。あなたがやりたいILUTを必要といけない

おかげOpenGL用C++クロスプラットフォームイメージローダー

答えて

0

ビットマップ(.bmp)とnetpbmイメージ(.pbm、pgm、.pnm)を読み込むと、圧縮されていないイメージが格納されるため、簡単に読み込むことができます。 PNGを読み込むには、libpngを使用します。 JPEGをロードするには、libjpegを使用します。他のイメージタイプについては、適切なライブラリを使用してください。イメージ名の先頭に 'lib'を置くと、このようなライブラリが得られます。 libtiff、libtgaなど

生の画像データを読み込んだらOpenGLテクスチャに読み込んだら、適切なパラメータを指定してglTexImage2D()を呼び出すだけで問題ありません。ミップマップを行う方法)。

3

LodePNG依存性のない非常にコンパクトなPNGローダーです。

DevILの経験に感謝します。私と他の多くの人にとって完璧に動作します。ビルドの問題を解決するためにもう一度やり直してみませんか? - あまりにもハードではありません)

2

SOILはこれまで私が使用していたまともな軽量です。実際にはOpenGLテクスチャの読み込みにも特化しています。

http://lonesock.net/soil.html

+0

これは正しい答えであると思います。 信じられないほどシンプルなC APIを備えた軽量ライブラリです。主にstb_image.c(これは絶対スパルタン軽量画像読み込みコードです)に基づいていますが、よりクリーンです。 – bigD

4

アダムが示唆するように、私はまたのlibpngとのlibjpegを使用することをお勧めします。あなたがCまたはC++で書く場合は、指定されていませんが、C++であれば、私は両方のライブラリに2人の便利な薄いラッパーを見てみることをお勧めしたい:pngxxjpegxx

3

ます。またFreeImage libraryを試すことができます。さまざまな画像タイプの読み込みをサポートしており、機能的にはDevilに似ています。

DevILの問題については、Devilを機能させるためにiluまたはilutライブラリをビルドする必要はありません。 OpenGL側に画像データをアップロードするなど、OpenGLテクスチャオブジェクトを自分で管理することをお勧めします。

15

libpngとlibjpegはともに&をビルドするのは難しいかもしれません。両方のラッパーライブラリがあります。

単一のCファイルに依存しないjpg/png(および他のものも同様)用の非常にシンプルで最小のナンセンスローダーはSean Barrettのstb_imageです。あなただけのいくつかの画像ファイルをロードする場合、C、それはあなたのプログラムに絶対的に最小限のオーバーヘッドを追加し、使用するのは簡単です:

http://nothings.org/stb_image.c

+3

このリンクをありがとう、これは素晴らしいです – joeld

+0

私はそのようなファイルのために2日間探しています、ありがとう。 – Mousa

0

若いが、まだ大きなは十分SFMLは、あなたが探しているものである可能性があります。私は数多くのプロジェクトに使用しており、すべてのプラットフォームはすべてのプラットフォーム(Win7とUbuntu)でうまくいきました。