A fast image and texture viewer written in C++. Leverages the GPU for quick draw times. Built on DearImGui and the Tacent Library, Tacent View has solid support for common texture formats like tga, dds, ktx2, exr as well as more traditional formats like jpg and png. Editing functionality includes batch resizing, rotations/flips, and the ability to generate contact sheets for VFX.
Tacent View is both fast and correct. Most of the image loading code is either custom or based on official reference implementations. Once decoded, images are marshalled to GPU memory for fast switching/rendering. The thumbnail viewer caches images/meta-data and can handle thousands of files in a single directory at interactive speeds.
Tacent View is distributed as:
The source code, portable Windows zip, and deb files are available from the releases GitHub page. If running Linux you may also consider installing the snap. If you want to build it yourself, instructions are available at the Tacent View GitHub page. The CMake build-system is used and can create projects (VS2022, make, nmake, ninja) for your desired compiler (MSVC, Clang, GCC). Build yourself if you have any security concerns. The buttons below link to pre-compiled versions of the latest stable release.
There are two main modes in which Tacent View may be used: GUI and CLI.
GUI mode is what you would expect – Open an image file with tacentview.exe and a window will open displaying the image. If you install the snap or deb file, it will register with the OS to be able to open supported image formats (but will not change your defaults). On Windows you may optionally associate Tacent View to a particular image type by selecting Open with and then Choose another app.
CLI mode (Command-Line Interface) allows you to perform all operations that can be done in the GUI from the command-line. The same executable file is used for command-line operations, whether compiled for Linux or Windows. CLI mode is intended to allow batch processing and conversions of images from one format to another. It allows Tacent View to be used in game pipelines and image processing workflows.
Loads: TGA PNG/APNG JPG GIF WEBP QOI DDS PVR KTX/KTX2 ASTC/ASC PKM EXR HDR/RGB BMP ICO TIF/TIFF
Saves: TGA PNG/APNG JPG GIF WEBP QOI BMP TIF/TIFF
Animates: GIF WEBP APNG TIF/TIFF
Some image formats are often used to store texture data that is easily decompressable by a GPU – DDS, PVR, KTX, KTX2, ASTC, and PKM files are examples. Tacent View supports the following texture formats for these types of files:
Packed | |||
---|---|---|---|
R8 | R8G8 | R8G8B8 | R8G8B8A8 |
B8G8R8 | B8G8R8A8 | G3B5R5G3* | G4B4A4R4* |
B4A4R4G4 | G3B5A1R5G2* | G2B5A1R5G3* | A8L8 |
A8 | L8 | ||
R16 | R16G16 | R16G16B16 | R16G16B16A16 |
R32 | R32G32 | R32G32B32 | R32G32B32A32 |
R16f | R16G16f | R16G16B16f | R16G16B16A16f |
R32f | R32G32f | R32G32B32f | R32G32B32A32f |
R11G11B10uf | B10G11R11uf | R9G9B9E5uf | E5B9G9R9uf |
R8G8B8M8 | R8G8B8D8 | ||
Block (BC) | |||
BC1DXT1 | BC1DXT1A | BC2DXT2DXT3 | BC3DXT4DXT5 |
BC4ATI1U | BC4ATI1S | BC5ATI2U | BC5ATI2S |
BC6U | BC6S | BC7 | |
Block (ETC) | |||
ETC1 | ETC2RGB | ETC2RGBA | ETC2RGBA1 |
EACR11U | EACR11S | EACRG11U | EACRG11S |
PVR | |||
PVRBPP4 | PVRBPP2 | ||
ASTC | |||
ASTC4X4 | ASTC5X4 | ASTC5X5 | ASTC6X5 |
ASTC6X6 | ASTC8X5 | ASTC8X6 | ASTC8X8 |
ASTC10X5 | ASTC10X6 | ASTC10X8 | ASTC10X10 |
ASTC12X10 | ASTC12X12 |
* These formats are named like every other format in the table – based on how the bits appear on disk and in memory. Some APIs call these B5G6R5 (BGR565), B4G4R4A4 (BGRA4444), and B5G5R5A1 (BGRA5551) but this is inconsistent with their other format names like B8G8R8 which are correct. Even taking little-endianness into account the adjusted names would be G3R5B5G3, R4A4B4G4, and G2R5A1B5G3 which does not match the in-memory representation. On the bright side, the LE-adjusted names for the PVR spec do make sense: G3B5R5G3 -> RGB565, G4B4A4R4 -> ARGB4444, and G3B5A1R5G2 -> ARGB1555.