DevIL vs other libraries

  • Im sorry if this has been asked before, i did not find a "search Forum" button.
    I wanted to ask about the pros / cons of DevIL vs other libraries like libpng with png++, plain libpng or pngwriter.
    To me it seems as if DevIL is the ultimate solution for someone that "just" wants to use image formats like PNG for openGL textures. libpng seems rather for people that want more direct access to the roots of the PNG format, or want to write something like DevIL,  but what is png++ for then? anyone that would want a simple API would use DevIL. DevIL can load tons of formats, is licensed under the LGPL and seems easy to use.
    Therefor i would like to ask for opinions about the advantages and disadvantages of all the image loading libraries (all is a bit much, but lets say a rough overview would be appreciated ) and why i dont get a very clear answer "DEVIL!!!!" when i searched for a method to load PNG files as openGL textures.
    Thanks in advance and thanks for making this great tool!

    • Denton Woods
      Denton Woods

      Your points about DevIL's strengths are definitely valid.  People who choose not to use it typically do so because they want to write their own image loaders or use libpng, libtiff, etc. directly.  Some may not like the syntax of DevIL or have other reasons for not using it.  DevIL provides a common interface to the various libraries it uses and also to its internal loaders.  This method does leave out some functionality that the various libraries provide, so you may lose some of their abilities.

      I have not used png++ or PNGwriter, but they both are C++ interfaces to libpng.  PNGwriter is designed more with the scientist in mind, and png++ is mainly just a wrapper around libpng.  There is a C++ wrapper for DevIL, but it is pretty simple.

      Did that at least answer your question somewhat?

    • You answered my main question, thanks :)
      I use DevIL with C++ and it does what i want perfectly fine. I can map a PNG with alpha-level to a openGL texture and show "sprites" ( i just reread wikipedia, i guess theoretically the word is not used correctly here, though nowadays it basically means quad with texture, doesnt it? ) without the black surrounding of the image if it is not square via blending while the depht buffer is on. Sounds perfect to me, mipmapping seems to work aswell, though i haven't tried it yet ( the DevIL version ).
      A c++ wrapper for DevIL sounds a bit weird, DevIL is a wrapper for libraries like libpng and in itself simple enough that anyone who can use PNG in a program should be able to understand it... At least thats what i experienced up to now, maybe other things are not that easy to understand.