Documentation and User Interface disagree on supported input image formats

Hi,

I’m attempting to load a .tif image into the Exporter (2023.2.0), which the Open File dialog claims to support. However, this raises an error

"Error: FreeImage reported: Was unable to load the file test.tif using FreeImage (the bitmap was nullptr)!

DDS reader reported: the DDS file’s first our characters were incorrect …"

Then immediately proceeding is a report from the KTX reader “Not a KTX1 or KTX2 file”. So apparently the code falls back to .DDS / .KTX in the event of an unsupported file?

I’ll also note the README.txt states that the Library (perhaps opposed to the GUI) that tif is not explicitly supported.

  • Supported input formats: DDS, BMP, GIF, HDR, JPG, PGM, PIC, PNG, PPM, PSD, TGA

So, I think the approach here is to not advertise .tif support.

I’ve tried opening a .PNG file, and receive the same message. This format is explicitly documented as supported.

Please advise.

Hi @jesse.r.meyer ! Could you send me (either here or in a DM) an example of an image that doesn’t load? I ran a few test images though 2023.2.0, but couldn’t reproduce this issue with the files I had.

We indeed support those image formats, so we should be able to load any valid files with those extensions (assuming the code is working correctly). I can also confirm that for .tif and .png files, we try to load them using FreeImage first, and fall back to the KTX and DDS loaders if that fails (in case it’s really a KTX or DDS file that has been saved with the incorrect extension, for instance).

Thank you!

–Neil

It turned out that the TIFF image used Zstandard compression, while FreeImage’s build system only enables Zlib compression for libTiff. (Zstandard is a dependency of the Exporter, but is not a dependency of FreeImage; this may change in the future.)

Quick update to this thread: Texture Tools Exporter 2024.1.0 should now support TIFF images that use Zstandard compression within them, which should fix the issue with the original file.

Hope this helps!