Freeimage and DDS mipmaps

  • JohanJ

    JohanJ - 2013-11-01

    I read a topic about DDS mipmap support for Freeimage in an old topic some 7 years ago stating there was no way to get the mipmaps of a DDS texture at the time. I am wondering if this has changed now 7 years later, or is there an easy extension/plugin to Freeimage that does this? I have no experience working with the DDS format myself.

    I'd rather not have to resort to DevIL for loading DDS, for license issues but also a pain to integrate that library for the sake of just loading DDS images, as the excellent FreeImage library does everything else I need with no pain at all.

  • Pete

    Pete - 2013-11-07

    I would also like to know whether Freeimage will support converting/saving to DXT compressed format in the near future to avoid the use of DevIL or Squish APIs.

  • Pete

    Pete - 2013-11-08


  • Hervé Drolon

    Hervé Drolon - 2013-11-27


    AFAIK, about the DDS loading feature, the only known FreeImage user is the Ogre3D library.
    Several years ago (and as soon as FreeImage was used into this library), the Ogre3D team choosed to disable the DDS plugin. This is because it was easier to load a raw binary file and to send this file to the graphic card (there's no need for an I/O image library for this).

    Now your question is about saving an image as DDS. I've never had demand for this feature but this feature could be easily added to the FreeImage library.
    This would mean a rewrite of the DDS plugin, and I think I would use the libsquish library for this.

    Are there any other users that would like to have DDS compressed saving included into FreeImage ?

    NB: any contribution is welcomed, so if someone has a ready-to-go plugin, please send it :)

  • Pete

    Pete - 2013-12-02

    Thanks for the answer. Having full support for DXT on FreeImage would make the latter unbeatable.

    Please be aware that -if I remember it well, for conversions, libsquish expects the source non-DXT image to be in the standard color space (four 8-bit channels), not leaving room for other use cases.

    Newer versions of the library -with more options- can be found here:


Log in to post a comment.