Когда-то давно я не смог найти для себя вьювер, который удовлетворял моим требованиям. Посему был написан свой вьювер - simple viewer, базирующийся на GFL SDK (используется в xnview).
Через некоторое время я решил отказаться от GFL SDK в пользу открытых библиотек (libjpeg, libtiff, giflib, libpng, etc.) и перешел на OpenGL. Так 8 лет назад родился Simple Viewer GL: https://bitbucket.org/andreyu/simple-viewer-gl
Картинка для привлечения внимания: https://bitbucket.org/repo/XgobE8/images/1203610096-simpleviewergl.png
Поддерживается все, что умеет ImLib2 (BMP, TARGA, куча прочих форматов), а так же:
- PNG (libpng),
- JPEG (libjpeg),
- TIFF (libtiff),
- GIF (giflib),
- PPM (частичная поддержка),
- DDS (частично),
- PSD (формат до конца не отреверсили, посему не все фичи поддерживаются),
- ICO (png и «обычные» фреймы),
- XWD (только x11, за реализацию x10 даже не брался),
- SCR (ZX-Spectrum screen),
- PVR, RAW, AGE (это внутренние форматы).
Интерфейс - одно окно с опциональной строкой статуса и информацией о пикселе/селекшене под курсором.
Вьювер умеет определять тип файла по его сигнатуре, а не только по расширению.
Умеет рекурсивно сканировать директорию.
Работает под Linux и macOS. Вместо мертвого freeglut используется glfw3.
Сегодня собрался с силами и смержился с development.
Постараюсь ответить на все ваши вопросы по вьюверу.
Перемещено beastie из talks