An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tif, ico, webp, and bmp files


Build latest tacentview

tacent view

An image and texture viewer for tga, png, apng, exr, dds, gif, hdr, jpg, tiff, ico, webp, and bmp files. Uses Dear ImGui and the Tacent library. This viewer is targeted to game devs -- It displays alpha channels correctly and can inspect/edit the colour of individual pixels. There is basic editing functionality, batch resizing, rotations/flips, and the ability to generate contact sheets for FX. Tacent View can save tga, png, bmp, jpg, (animated) webp, (animated) gif, (animated) apng, and (animated) tiff files.

Tacent View runs on Windows 10 and Ubuntu Linux. Browse the releases to grab a zip (Windows) or deb (Linux) package -- or install from the Snap Store.

Tacent View

Left/right direction keys show previous and next images, semi-transparent images are displayed with an optional checkerboard background, and images may be converted to different formats easily.

Tacent View

Use 'Save All As..." to batch convert all the images in a folder.

Tacent View

Viewing as thumbnails is supported by the 'Content View' window. Thumbnail generation and cache retrieval are extremely fast. Tacent View can easily handle thousands of photos in a single folder.

Tacent View

Contact sheet (AKA flipbook) textures may be generated. Images may be 'played' in succession to see what they look like animated. The alpha-channel is interpreted as opacity and is properly processed if the source images have semi-transparency.

Tacent View

Flip, rotate-by-90-degrees, rotate-arbitrarily (with live preview), cropping, and viewing textures in tiled mode is supported. There are also some powerful tools to resize images either by resampling or adjusting the canvas size. The 'aspect' mode in resize-canvas is useful for changing a photo's aspect ratio without any non-uniform scale. You get to set the anchor and choose whether you want the image letter-boxed or cropped. The border removal tool finds all matching pixels around the edges of an image and crops them. All edit operations are backed by a full undo (ctrl-z) and redo (ctrl-y) stack.

Tacent View

Tacent View

When viewing dds (direct draw surface) files, you can view any present mipmaps and see cubemaps in a 'T' layout.

Tacent View

Tacent View

Users may zoom using Ctrl+/- and pan using the right mouse button. Several zoom modes are availabe in the view-menu including Fit, Downscale, and One-to-One pixel mapping. On extreme zooms the selected pixel is drawn with an outline.

Tacent View

High Definition Image loading is supported for exr and hdr files. For hdr files the loading code is based on, and is functionally equivalent to, the reference code from the Radiance imaging toolset. Adjustments to gamma correction and exposure are supported when loading radiance hdr files. The images below (Copyright Rafal Mantiuk under Creative Commons 3.0) show an hdr image that loads over-exposed and is subsequentially adjusted to yield a more balanced result.

HDR Loading

EXR support also uses reference code from OpenEXR and should be able to load most exr files, including multi-frame (AKA multi-part) files. There is more control for exr parameters including the ability to de-fog. The screenshot below ('desk' image courtesy OpenEXR and under their licence) shows similar successive exposure adjustments.

EXR Loading

Other formats store multiple images inside a single file. A dds may be a cubemap with 6 sides or a BC compressed image with mipmaps. A tiff may also include multiple 'pages'. Webp and png/apng files may be animated. For these formats the property-editor window allows you to display which frame you see. The hypercube below (courtesy Jason Hise under CC0) shows the options and play controls for a multi-frame animated gif.


Alt-Enter toggles fullscreen mode. In this mode the bottom navigation bar and top menu are invisible. If at any point you want to reset the UI or other settings like the default resample algorithm or preferred file save format, you may do so from the preferences dialog.

Tacent View

The 'transparent work area' option in the preferences allows you to see right through to your desktop -- interpreting the alpha channel in the image, if present, as opacity. If you set the viewer to basic-mode (B-key, no UI widgets), and enter fullscreen mode (Alt-Enter), you can do things like play animated semitransparent webp file right over your desktop. The screenshot below shows transparent-work-area turned on while in windowed (non-fullscreen) mode. This works in both Linux and Windows. For Linux, the snap system disables this feature so you will need to install the deb file or build from source.

Tacent View

building from source

For convenience pre-built binaries are available for Windows and Ubuntu/Debian in the Releases section. Other Linuxes can use the Snap Store Release. Follow the instructions below to build from source.


Building on Windows is tested with the Visual Studio 2019 MSVC compiler (choose the C++ workflow when installing). You will need to install git. Optionally you may want to use VSCode with the CMake Tools extension to build. To build from the Visual Studio x64 Command Prompt:

mkdir build
cd build
cmake .. -G"Visual Studio 16 2019" -Ax64
cmake --build . --config Release --target install

The install target will also package a zip file with all required content. This is done by an install step using a powershell script.


Building for Ubuntu is tested with Clang (9 or 10) and GCC 9.3. CMake and Git are required. Ninja is suggested but optional. The 'Software and Updates' app allows you to manage (add and remove) repositories or use the command line:

sudo apt-get install gdebi               # Installs gdebi to allow command-line deb file installation. Optional.
sudo apt-get install git                 # Install git or download the source as a zip.
sudo gdebi Downloads/smartgit-19_1_7.deb # Install smartgit or some other git frontend. Optional.
sudo apt-get install llvm                # The compiler. Optional if not using GCC.
sudo apt-get install clang               # The compiler. Optional if not using GCC.
sudo apt-get install lldb                # The debugger. Optional if not using GCC.
sudo apt-get install cmake               # CMake.
sudo apt-get install ninja-build         # Ninja build system.
sudo update-alternatives --config c++    # Choose clang. Optional if not using GCC.
sudo update-alternatives --config cc     # Choose clang. Optional if not using GCC.

I usually use VSCode with the CMake Tools to build. Alternatively from the command line:

mkdir ninjabuild
cd ninjabuild
cmake .. -GNinja
ninja install

You can pass -DCMAKE_BUILD_TYPE=Debug (or Release) to cmake if so desired. The install target places the viewer into a ViewerInstall directory along with any data resources it needs. Install is also leveraged to build packages. If you configure and build with:

cmake .. -GNinja -DPACKAGE_DEB=True
ninja install

Then a deb file with all required content will be generated.

Credit and Thanks

This project relies on myriad 3rd-party libraries. In the Data folder you will find their licences. Some of the more notable dependencies are listed here:

  • Dear ImGui
  • Gif Load
  • Ico Load
  • Ion Icons
  • LibJPeg-Turbo
  • OpenEXR
  • Roboto Font
  • WebP Reference Library
  • LibTIFF
  • ZLib
  • This software is based in part on the work of the Independent JPEG Group.
  • This software includes Radiance software developed by the Lawrence Berkeley National Laboratory.

Various development tools available for open source projects bear mentioning:

  • CMake
  • Ubuntu
  • VS Code Editor
  • Visual Studio Community
  • GCC, Clang, and the MSVC Compiler
  • Github
  • Git and the SmartGit Client
  • OpenGL, GLAD, and GLFW
  • [Bug] Filename encoding problems

    [Bug] Filename encoding problems

    Tacent won't open file if it has Cyrillic letter (it opens with blank window). try rename a file to ы.png

    Tacent title bar incorrectly display filenames with chars that not English. image

    opened by kutu 9
  • [Bug] Animated images playing at the wrong speed

    [Bug] Animated images playing at the wrong speed

    Animated images (GIF, aPNG or aWEBP) don't play at the correct rate, though the right speed seems to be detected in the UI.

    Expected result: ezgif-5-245900e1eb

    In Tacentview: Peek 2022-11-05 19-01

    Happens on every image I could find. The difference in speed seems slightly inconsistent from image to image, but it's always slower than the original. It's much more noticeable of images with low periods, especially those around the 60Hz range.

    opened by Frousties 8
  • [Suggestion] Multiple small suggestions

    [Suggestion] Multiple small suggestions

    Hello, first of I want to thank you for providing this great image viewer! I always struggled to find one that fitted my needs as well as this one does.

    After using it for a bit, I want to make a couple of suggestions on how to improve the program even further (or at least put them as options and sorry if some of them have already been suggested!). I am running on Linux:

    • Zooming the image doesn't take up the entire workspace:

    image image I don't know if this is deliberate, but I think it looks weird. The 'zooming area' seems to keep the image aspect ratio.

    • Option to reset the zoom when switching image:

    Pretty self-explanatory, navigating through folders with images of multiples sizes can get a bit messy because of that. Maybe put a 'default zoom mode' option in the preferences would fix that? Since zooming in or out resets it to 'Zoom user'.

    • Option to close the program with 'Escape':

    Some other image viewers have this feature (and sometimes by default), and I think it helps speeding up the workflow when going through multiple pictures.

    • Support for non-US keyboards:

    Now, I know this is a common issue with GLFW and ImGUI programs, but there are have been several workarounds posted to the ImGUI and GLFW issue trackers. I managed to make it work using a slightly 'dirty' method, but it would be nice to have this change made upstream.

    • 'Basic View' mode doesn't restore the interface and settings as they were:

    For example, when I exit 'Basic View', the 'Nav bar' disappears and the 'Auto Property Window' setting gets disabled. I don't really like that.

    • The DDS property editor is the same as the one for animated pictures:

    Only the option to display layers one-by-one would be needed here. image image

    • Option to enable 'Display Mipmaps' and 'Display Cubemap' by default when viewing DDS files:

    Maybe also move those buttons to the DDS property editor window since it's the only image type that uses these options.

    • A keybind window:

    The option to rebind keys would be nice (and not all features have a keybind assigned to them currently). Maybe also add a key hint to the icons when hovering them as well?

    • Add separators between icons:

    Right now, all the icons are all just lined up next to each other and not necessarily grouped by functions. Adding separators and grouping the icons in a more sensible way will make the menu bar easier to navigate.

    • Option to scale the UI / make the font bigger:

    This is just for accessibility reasons and for people with bigger / smaller monitors.

    I think this is everything that I wanted to say for now. None of these issues are a deal breaker by any means! But it would make the program feel even better to use this way in my opinion.

    opened by Frousties 6
  • [Suggestion] A keybind window

    [Suggestion] A keybind window

    The option to rebind keys would be nice (and not all features have a keybind assigned to them currently). Maybe also add a key hint to the icons when hovering them as well?

    Can put on list. It's a bit of work.

    I am aware, this is kind of a luxury right now, take your time!

    opened by Frousties 3
  • [Suggestion] Support for non-US keyboards

    [Suggestion] Support for non-US keyboards

    Now, I know this is a common issue with GLFW and ImGUI programs, but there are have been several workarounds posted to the ImGUI and GLFW issue trackers. I managed to make it work using a slightly 'dirty' method, but it would be nice to have this change made upstream.

    I don't own any...although I'm sure you can set the OS to interpret the scancodes as if it were a different layout. If you have code (messy or not), it could be attached to this issue (after a sep bug is made for it).

            // Convert key codes to support non-US keyboards
            const char* keyName = glfwGetKeyName(key, 0);
            if (keyName)
            	key = static_cast<int>(static_cast<unsigned char>(keyName[0]));
    		// Convert to upper-case
    		if (key >= 97 && key <= 122)
    			key -= 32;

    Adding this block of code just before the 'key' switch statement in 'KeyCallback()' seems to do the trick for AZERTY (need testing for other layouts such as QWERTZ). I also don't know if it has an impact on performance (probably not since it's a very small operation, but who knows). If this solution works out I feel like it's better than having the user change things in their OS as the vast majority of programs support different layouts natively (it seems to be a shortcoming on GLFW and ImGUI's side).

    opened by Frousties 3
  • Zooming the image doesn't take up the entire workspace

    Zooming the image doesn't take up the entire workspace

    image image

    Yeah, I wanted the displayable area to maintain aspect under zoom...but also not sure how much I like it either -- it especially breaks down viewing extremely narrow images.

    opened by Frousties 3
  • Single Channel images not showing up

    Single Channel images not showing up

    opened by dadiborn 3
  • No way to hide reticle

    No way to hide reticle

    Maybe allow left click outside of the image to hide reticle. Or reticle should appear after first left click on the image, after switching to different image - reticle disappear. Allow disabling reticle completely in preferences.

    opened by kutu 2
  • [Suggestion] Restore Maximized/Fullscreen view states

    [Suggestion] Restore Maximized/Fullscreen view states

    Currently only window size is restored.

    If I maximize window, quit, open again, the size will be correct (looks like maximized), but window is not truly maximized.

    I prefer to have a fullscreen view from the start, and I set q keybind for quick exit.

    opened by kutu 2
  • 'Basic View' mode doesn't restore the interface and settings as they were

    'Basic View' mode doesn't restore the interface and settings as they were

    For example, when I exit 'Basic View', the 'Nav bar' disappears and the 'Auto Property Window' setting gets disabled. I don't really like that.

    I can look at that sometime.

    opened by Frousties 2
  • Manage supported extensions instead of hardcoding.

    Manage supported extensions instead of hardcoding.

    The file dialog currently has the extension filter hardcoded. May need functionality in tacent to go from filetype back to associated extensions. Add 'CanLoad' (os maybe 'GetLoadableExtensions') and 'CanSave' (or GetSaveableExtensions) to the Image class (similar to tPicture).

    Then will need to generate the filter from the functions above.

    opened by bluescan 2
  • Implement proper multi-monitor support for both platforms.

    Implement proper multi-monitor support for both platforms.

    Hi, I recently got a dual monitor setup and noticed an annoying bug on Linux with KDE, the window always appear on the left-most monitor (which is my 2nd screen for me)

    I actually identified the cause: before loading the window settings, the program clamps the position value, but it doesn't take into account that the origin point shift to the left-most point in a multi-monitor setup on Linux (at least on X11, I didn't test Windows or Wayland)

    If the intent was to prevent the window from spawning out-of-bounds, it is unnecessary because this is done automatically (either by GLFW or X11, I don't know). It also does it for the size

    Thank you again for the program!

    opened by Frousties 5
  • v1.0.34(Dec 30, 2022)

    This release allows high-quality GIFs to be created. GIF support before this did not do a good job of creating colour palettes and did not support saving transparency. In this version 3 high-quality colour quantizers have been added, transparency is supported, and palette-size (BPP) can be set anywhere between 1-bit (2 colour) to 8-bit (256 colour). Dithering is also supported for the spatial quantizer.

    The available quantizers are:

    • NeuQuant. This is probably the most well-known high-quality quantizer. It uses a neural net to learn and reduce errors in colour differences. Works well for bigger palette sizes like 128 or 256 colours.
    • Wu Bipartition. With my simple test-case this performed really well at a range of bit-depths and was reasonably fast. it is the default quantizer in Tacent View.
    • Scolorq/Spatial. This is the only method to directly support dithering. It is quite slow but gives superior results for low bit-depths. Try using it for 5-bit (32-colour) or lower.
    • Fixed. A fixed palette. Does not inspect the image pixel colours but is useful for 1-bit palettes as it guarantees both black and white are included. It also highlights how much better the other methods are ;)

    Some tests of the quantizers can be found in the Tacent Wiki Quantization Page

    The new interface to save a GIF:


    Most of the work for this release took place in the base Tacent library. This included the use of gifenc to do the encoding. Here is the related Tacent release.

    Additional Improvements and Changes:

    • File dialog now pre-populates the base filename when selecting save-as.
    • Gif palette bit-depth displayed correctly in details panel. From 1 bit to 8 bit.
    • Simplified image loading and saving code to take advantage of the new tImage constructors.
    • No longer using hardcoded extensions for save-as and save-as-multiframe. Now uses the FileTypes object. Config file saves file-type name instead of arbitrary int.

    Full Changelog:

    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-34.deb(3.75 MB) MB)
  • v1.0.33(Nov 13, 2022)

    This release features support for 3 new image types in addition to a number of improvements and fixes. The newly supported file-types are:

    • QOI : The Quite OK Image format. This is a lossless image format with a fast encoder/decoder backend. Both loading and saving are supported.
    • KTX V1 : The last release supported ktx2 files. This release adds support for the original ktx files and for decoding of ASTC data in ktx, ktx2, and dds files.
    • ASTC : This format is the official ARM format for storing astc data. An astc file (.astc) contains data for a single image in one of the 14 block types ASTC provides.

    Auto-gamma correction for ktx, ktx2, and dds files is now provided. In this mode the viewer tries to determine if the image colour-space is linear, and if it is, applies the sRGB transformation so it is displayed correctly. Note: Most image files, tgas, jpgs, etc are already in sRGB-space.

    Additional Fixes and Notes

    • Fix animated image playback rate to take into account remaining time when detection of frame being over is encountered. Animated GIFs, APNGs, and WEBPs now playback at the correct speed (it was slightly slow previously).
    • KTX V1 support for all BC formats (BC1 to BC7), HDR float and half-float formats. ASTC encoded pixel data is now supported for ktx, ktx2, dds, and astc files.
    • Fixed issue with reset button in properties window overlapping with exposure control.
    • Fixed bug with some help-text causing a crash when displayed.
    • Support display of non-integral bpp in details popup. Some formats (astc) have variable and non-integral encoding rates.

    Full Changelog:


    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-33.deb(3.69 MB) MB)
  • v1.0.32(Oct 30, 2022)

    Khronos KTX2 File Support

    This release features loading support for KTX2 (Khronos TeXture version 2) files. This is a modern file format that can hold texture data in a variety of pixel-formats. This release supports mipmaps, cubemaps, and 2D textures in the following pixel-formats:

    • BC1DXT1
    • BC1DXT1A
    • BC2DXT2DXT3
    • BC3DXT4DXT5
    • BC4ATI1
    • BC5ATI2
    • BC6S
    • BC6U
    • BC7
    • R8 (L8 A8)
    • R8G8
    • R8G8B8
    • R8G8B8A8
    • B8G8R8
    • B8G8R8A8
    • B5G6R5
    • B4G4R4A4
    • B5G5R5A1
    • R16F
    • R16G16F
    • R16G16B16A16F
    • R32F
    • R32G32F
    • R32G32B32A32F

    For the HDR formats (anything ending with an 'F' plus BC6S and BC6U) there is the option to control the exposure as well as colour-space conversions. KTX container parsing and supercompression decoding is done by the official KTX-Software library and decoding the BC formats is provided by bcdec. ASTC decoding for both dds and ktx files is not implemented yet (on the roadmap).

    Addition Improvements And Fixes

    • Fixed per-image zoom.
    • Changed order of mipmap image binding. Removes the frame of displaying lowest mip level when switching images.
    • Select gamma-correction mode (None, Gamma, or sRGB) for linear (HDR) images.
    • Exposure control for all HDR formats in both DDS and KTX files.
    • Spread-luminance/red control in image properties UI for both DDS and KTX images (removed from preferences window).
    • Reticle visibility modes: Always-Hidden, Always-Visible, On-Select, and Auto-Hide. Default for main profile is On-Select. Default for basic profile is Auto-Hide.

    Full Changelog:

    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-32.deb(2.98 MB) MB)
  • v1.0.31(Oct 3, 2022)

    Extended DDS File Support

    This release updates DDS loading to support modern (well, more modern) dds files with the dx10 header as well as many more pixel formats. Some formats are only available with the header, and some legacy formats are only available with legacy dds files (no header). The full list of formats supported for loading in this release is:

    • BC1 (DXT1 and DXT1A / Legacy and Modern)
    • BC2 (DXT2 and DXT3 / Legacy and Modern)
    • BC3 (DXT4 and DXT5 / Legacy and Modern)
    • BC4 (ATI1 / Legacy and Modern)
    • BC5 (ATI2 / Legacy and Modern)
    • BC6s (HDR. Modern)
    • BC6u (HDR. Modern)
    • BC7 (Modern)
    • A8 (Legacy and Modern)
    • L8 (Legacy and Modern/R8)
    • B8G8R8 (Legacy)
    • B8G8R8A8 (Legacy and Modern)
    • B5G6R5 (Legacy and Modern)
    • B4G4R4A4 (Legacy and Modern)
    • B5G5R5A1 (Legacy and Modern)
    • R16f (HDR. Legacy and Modern)
    • R16G16f (HDR. Legacy and Modern)
    • R16G16B16A16f (HDR. Legacy and Modern)
    • R32f (HDR. Legacy and Modern)
    • R32G32f (HDR. Legacy and Modern)
    • R32G32B32A32f (HDR. Legacy and Modern)

    This is a superset of the possible export types provided by NVidia Texture Tools Exporter, but a sub-set of the possible types supported by Microsoft's DirectXTex texconv command-line tool. The heavy-lifting for decoding the BC formats was provided by This has also simplified the viewer code a little as before the decode was done by the GPU. It's a step forward to do it on the CPU since driver support for GPU-decode while generating thumbnails on separate threads with separate contexts was a little suspect (especially for Linux/Wayland).

    Addition Improvements And Fixes

    • Contact sheet generation filters and edge modes are now chosen separately from other resample filters. The contact sheet filter used on individual frames and the final output filter are now distinct. The UI will only display the filtering options if they will be used -- if you pre-author all the correct sizes, no filtering will be needed.
    • Fixed a slight display problem with UV clamping when not displaying in tiled mode.
    • Fixed issue with selecting mipmap filter in prefs. None (disable mipmapping) was unavailable from the combo-box.
    • Fixed cursor move issue where sometimes shift-arrow would not update cursor position.
    • Improved when decision to draw cursor as a square outline vs a reticle. It is now based on screen-space pixels rather than zoom amount.
    • Improved cursor colour choice decision. It now takes intensity/alpha into account rather than only the Value in HSV-space.
    • Zoom amount now stored per-image instead of globally. You can now flip between different images and they remember their zoom (if zoom mode is 'user').
    • Spread-luminance option in preferences. Makes single-channel luminance images display as greyscale.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-31.deb(2.67 MB) MB)
  • v1.0.30(Sep 6, 2022)

    This is an incremental release. It includes two important optimizations.

    The first is much better performance while zoomed-in. Panning while at maximum zoom, for example, was really slow. This was due to drawing the background under the entire image, including the parts that were off-screen. This has been addressed. Additionally, there is no point drawing the background at all if it doesn't extend past the image extents and the image itself is completely opaque.

    The second is a general speed improvement by updating Tacent to leverage the memory and speed optimized string class. Most string manipulation functions in the viewer no longer have to allocate and free memory every time a change is made.

    There is an additional improvement to the image meta-data screen. By right clicking a row you can now copy the information to the clipboard. You may also copy-all to get all meta-data tags and values in one go.

    Lastly, the background checkerboard size may now be set in the preferences.

    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-30.deb(2.86 MB) MB)
  • v1.0.29(Aug 6, 2022)

    Cropping Code

    Cropping is now easier to use and allows setting the crop-lines to precise pixel values. The crop-lines define the outer outline of the pixels that will be kept (including the ones on the line). There is a quick crop-navigation widget that allows you to quickly snap/pan to the corner or side you want to adjust. The cursor move shortcuts can be used to move the last-selected crop anchor around one pixel at a time -- the default bindings for these are Shift-DirectionKey. The cropping lines are maintained if possible while you move between different images.


    Cropping Code

    Why the quip in the release title? There was also some code 'cropping'. In particular panning is handled more accurately, maintains the offset properly as you zoom, and has a less complex implementation. The code to handle the fixed-aspect work-area was also removed since allowing the image to fill as much screen real-estate as possible is always desireable. In addition button images were removed where they could be generated by simple UV flips of existing images.


    Additional fixes and improvements include:

    • File dialog keeps sync with underlying filesystem better. Last open file or directory remembered across runs of the viewer.
    • File dialog bookmarks cleared properly if the location no longer exists.
    • File dialog menubar for optionally showing hidden files and directories.
    • Pan offset displayed in image details next to zoom percent.
    • Upgraded to ImGui 1.88
    • Fixed potential crash in file dialog when switching directories after opening the dialog multiple times.
    • Fixed sorting issue when first opening file dialog.
    • Ability to refresh file dialog content view.
    • Button for moving up a single directory in the file dialog.
    • Pan reset button in main view.
    • Custom anchor widget for resize-canvas and crop popups.
    • Reduced number of button images loaded by using UV-flipping where possible
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-29.deb(2.86 MB) MB)
  • v1.0.28(Jul 12, 2022)

    This release contains big improvements in 3 areas. Image meta-data may now be viewed when loading JPG files. Windows network shares may now be accessed directly, and there is a file dialog for both opening and saving of images.


    EXIF image metadata can now be displayed for JPG images. EXIF orientation is now taken into account when loading JPG files that have the orientation tags set.


    File Dialog

    A file dialog for Save-As, Open File, and Open Directory operations. Supports sorting and filtering by various properties like modification date, hiding columns, and resizing tree-view, bookmark, and content panels.


    Network Shares

    The dialog supports the ability to access and browse network shares on windows.

    Other Improvments and Fixes

    • Fullscreen mode makes no changes to nav and menu bar. This is now handled by the profile only.
    • New operations that have been added do not invalidate previous config file settings. The new operations simply get default key-bindings.
    • Fixed shutdown crash on Linux due to not cleaning up all icon images properly.
    • Fixed cheat-sheet. Now shows all key-bindings.
    • Cleanup transition between profiles. Made nav-bar height the same as toolbar height so no adjustment to image centering seen. Fullscreen mode restores properly if you quit while fullscreen. All window geometry settings are now in global config section.
    • Direct UTF character support on windows without needing to set the beta Windows 11 option to assume UTF-8. Can now load files with characters outside the basic multilingual plane.
    • Added bit-depth option when saving PNG and BMP files.
    • Fixed an issue where shortcut keys would not function unless the toolbar was visible.
    • Multimonitor support on Linux.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-28.deb(2.82 MB) MB)
  • v1.0.27(Apr 21, 2022)


    The two main features in this usability release are user-configurable key bindings and channel filters.

    Channel Filters

    I recently found myself needing to save a jpg (no alpha channel) of a png file that had an alpha/opacity channel -- but wanted white as the background colour instead of black. The channel filters popup allows you to both view the channels you want as well as combine a chosen background colour and burn it in.

    You can view the RGBA channels in any combination, or you can choose to view individual channels as intensity maps. The background colour may be set in the channel filters window or in the preferences.

    Pressing Blend Background does what you'd expect: combines the image pixel, interpreting alpha as opacity, proportionally with the background colour. The result is written to the RGB channels and alpha is set to full. Undo/Redo (Ctrl-Z / Ctrl-Y) is fully supported.


    Key Bindings

    Don't like the keys that are bound to the different operations? Want to use the numeric keypad for some shortcuts? This is now possible thanks to the Key Bindings window.

    Any operation may be assigned to any key along with optional ctrl-alt-shift modifiers. The bindings are stored per-profile so you can have different shortcut keys in the two supported profiles (basic and main).

    Multiple keys may be bound to the same operation. For example, by default the space bar and right arrow keys both map to the Next Image operation. Multiple operations may not be assigned to the same key at this time, although the possibility of a macro system is worth considering as it would be handy for batch operations.


    The default keys to access these features are ~ for the channel filters (as well as a toolbar button), and TAB for the keybindings window.

    Ctrl-Shift-TAB is not re-assignable. This prevents you getting into trouble if you turn off the menu bar and unassign the TAB key -- you can always get back to the bindings window.

    The full list of improvements:

    • Ability to set the background to a custom user-specified colour. You can still choose the predefined colours in the preferences window.
    • View any combination of RGBA channels.
    • View individual RGBA channels as intensity maps.
    • Changed the background colour of thumbnail images to be more subtle and in-line with the rest of the viewer.
    • Allow resizing of the cheat-sheet. Note that the cheat-sheet (F1) is now auto-generated based on what key bindings are configured.
    • Keybinding map stored and serialized per profile. Currently 2 profiles: Main and Basic.
    • Shortcut keys displayed in menu-bar taken from key binding assignments.
    • Simplification and cleanup of menu-bar items along with separators where it made sense. Reorganization of what operations are available in the File, Edit, and View menus.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-27.deb(2.75 MB) MB)
  • v1.0.26(Apr 2, 2022)

    This release includes fixes and usability features from user feedback as well speedups to thumbnail generation.

    • Increased number of off-screen thumbnail generating threads. Added thumbnail generation progress indicator to view window.

    • Esc key exits fullscreen/basic-mode as before, but now also exits the viewer if not in fullscreen/basic. This can be disabled in preferences.

    • Support for multiple profiles to be saved in config file. There are currently two profiles: Main and Basic. Each has a complete compliment of viewer settings. The B key toggles between them. The defaults for the Basic profile give you a simplified viewer with no nav bar or menu bar, and a longer slideshow period. These settings can all be modified and are saved to whatever profile is current. The preferences window tells you the current profile.

    • Reworked preferences window tabs with buttons to reset only the current profile, the current category/tab within a profile, or reset everything (all profiles, all categories).

    • Support non-US layout keyboards.

    • Fix image centering when downsampling (smaller image than drawable area). A rounding bug was causing the image to be out by one pixel in width.

    • Toolbar cleanup and separators.

    • Cubemap and Mipmap options moved from toolbar to DDS properties window. Simplifies toolbar by removing two buttons that are only available to DDS files.

    • Ability to reset the zoom mode when displaying a new image. The default zoom mode is available in Preferences->Interface. The available zoom modes when switching images are:

      1. Keep: No change to zoom mode when switching images (this is the old behaviour).
      2. Fit: Image is zoomed to fit display area no matter its size.
      3. Downscale:* Shows it at 100% zoom unless image is too big and needs downscaling.
      4. OneToOne: One image pixel takes up one screen pixel.
    • Cleanup of image properties window. HDR image exposure changes no longer require hitting a reload button.

    • Ability to not use a fixed aspect work area. It is now an option to turn it on in the Display tab of the preferences. Look for Fixed Aspect Work Area (defaults to off). A non-fixed aspect work area helps when zooming in as all avail real estate will be used, and matches more closely the behaviour of other image viewers.

    • Fixed a background drawing bug that was sometimes showing a pixel-width line outside of the image.

    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-26.deb(2.73 MB) MB)
  • v1.0.25(Oct 8, 2021)

    Ability to sort files by dimension (width, height, or area). Speed is maintained since these attributes are now stored/cached along with thumbnail cache files. Regarding thumbnail generation, it now chugs along for off-screen images, while still prioritizing the visible thumbnails. This means that sorting by area will always work since all thumbnails are generated in the background.

    Support for opening folders with thousands of images has been further improved -- especially on Windows where there was a noticable stall when first opening the folder. This was due to not retrieving file detail information at the same time as enumerating the folder contents. For a folder with 2K files, we've gone from about 15 seconds to sub 1 second for the program to launch.

    • Support 2:3 and 3:2 aspect ratio as non-custom in the resize canvas dialog. This is a popular ratio for modern laptops.
    • Super speedup loading a folder with thousands of files. On an NTFS folder with 2K image files down from about 15 sec to under 1. It is much faster to retrieve file details (mod time etc) at the same time as enumerating the files.
    • Thumbnails generate even when off-screen. This means that when sorting images based on keys that are stored with the thumbnail (like area), the content view will be correct once all thumbnails have completed generation.
    • Updated desktop entries with comment/tooltip and GenericName. Both deb and snap.
    • Transparent work area not (and were not) supported by snaps (transparent frame buffers in GLFW). We now suggest using the deb file install in the app if the user tries to activate this feature. Tab (open file browser) also restriced by snap confinement -- now indicated in F1 cheat sheet help.
    • Ability to sort by images by area, width, and height. This was a little tricky to keep it performant since it requires opening the image to determine the dimensions. It is currently tied to the thumbnail generation. The thumbnail cache now stores the dimensions, so if a thumbnail is visible, it will get sorted correctly. Access this feature in the view window.
    • Configuring now pulls a specific Tacent library rather than latest. Don't want PBCs in Tacent to break the viewer build.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-25.deb(2.36 MB) MB)
  • v1.0.24(Sep 5, 2021)

    Andale! Opening an image in a directory with thousands of files is much faster. The improvement was two-fold.

    • The base library file-entry enumeraton was using standard filesystem iterators. Now there is a native implementation for Windows and Linux (using dirent). In some cases as much as an 8X speedup on retrieving directory contents. The more generic code still exists.
    • If a directory had many png images in it, they were all being inspected to see if they contained animated data (apng). This check, which is slow since it requires inspecting the file contents, is now deferred until load time, and is not forced upon every png in the directory.

    In addition, the About page now gives more information about the build config, architecture, and packaging method. That is, you can tell if you are running a snap or deb install for example.

    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-24.deb(2.36 MB) MB)
  • v1.0.23(Aug 15, 2021)

    This release features better support for KDE (Kubuntu etc) and the Dolphin file browser. TAB will open File Explorer in Windows, Nautilus in Gnome, and Dolphin in KDE. Note that the snap version of Tacent View does not support launching native file browsers. Use the deb install for this feature.

    Fixed the app icon that appears in the KDE window title bar.

    EXR display of single channel luminance images is now supported.

    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-23.deb(2.35 MB) MB)
  • v1.0.22(Jun 27, 2021)

    This release contains a couple of important improvements while the file dialog is being worked on. Of note::

    • Loading time significantly improved for directories with large numbers of files. Before this release the directory was enumerated multiple times, once for each supported filetype. Now it does it in one pass.
    • The quality of displayed images with text/writing in them under zoomed-out conditions was not ideal (was seeing better results on some other image-viewers). Minification now optionally uses mipmaps. Chaining mipmap generation can be used for fast generation (resampling). Both chaining and the mipmap filter can be chosen in the preferences. Select None for the filter to disable minification mipmaps.
    • Updated to ImGui v1.81
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-22.deb(2.38 MB) MB)
  • v1.0.21(Jan 30, 2021)

    While viewing an animated gif went to use the frame scrubber and realized it didn't exist. This release fixes that. The scrubber works for all multi-frame image types (tiff, apng, webp, exr, ico, dds, and gif).

    Improvements and fixes in this release include:

    • Fixed EXR loading parameters (exposure, defog, gamma) that had become disconnected.
    • Scrubber for multi-frame images. Pauses playback automatically while scrubbing. Use Alt-Left/Right to step one frame at a time.
    • Visible escape button in basic mode in case you forget the hotkey to use to exit that mode (B or Esc will work).
    • Fixed rare crash while displaying the preferences tabbed window.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-21.deb(2.31 MB) MB)
  • v1.0.20(Jan 24, 2021)

    The ongoing addition of editing features (pixel edits, rotate, resize, etc) have highlighted the need for an undo/redo stack. This release features simple undo (Ctrl-Z) and redo (Ctrl-Y) of all edits. Each image has its own undo stack.

    Another area that needed improvement was the limited support for saving images in different formats -- especially animated formats. This release brings the ability to save tiff, gif, apng, and webp files. Animation is supported for all these filetypes along with the ability to edit frame durations individually. Tiff files, which are called 'multi-page' if they have more than one embedded image, do not normally have a place to store the page/frame durations. Tacent View solves this by storing the duration in the software-description tag for the page. This allows these 'animated-tiff' files to be loaded by other imaging software.

    To save a collection of individual frames into a single animated image (perhaps an animated gif or webp file), open Tacent View in the directory with all the individual frame images and select File->Save Multi-Frame (or hit Ctrl-M).

    To resave an existing animated image to some other format, simply select File->Save-As (Ctrl-S) and choose the type of file you want to save as (apng, gif, webp, and tiff support animations).

    To edit individual frame durations of an animated image file, just display the frame you want in the Property Editor window and adjust the frame duration. Like all other edits, you can press Ctrl-Z to undo.

    Similarly, to save (extract) an individual frame from an animated image, select/display the frame you want in the Property Editor window, and Save As (Ctrl-S). Choose a non-animated output format like tga or jpg.

    Improvements and fixes in this release include:

    • Reorganized preferences window. It now uses tabs for the different sections.
    • Tooltip instructions on how to set the anchor to use the cursor position while resizing.
    • Clearer Rotation-by-Theta toolbar button.
    • Saving of multi-frame (animated) webp, gif, apng, and tiff files. Ability to create these animations from a collection of individual frame images, or save existing animated images to a different format.
    • Undo/redo stack. Stack depth may be set in the Preferences window. Each image has its own undo stack.
    • Internal cleanup of EXR loading code. Multi-part EXR files will load faster.
    • Saving webp files allows both lossy and lossless compression to be used, as well as specifying the quality/compression strength.
    • Edit operations that may be undone include flip, rotate, pixel colour edits, crop, and resize. For all of these, the Edit menu will show a brief description of the step you are undoing (or redoing).
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-20.deb(2.29 MB) MB)
  • v1.0.19(Jan 3, 2021)

    This release features the ability to produce high-quality rotations at arbitrary angles. Look for the rotate theta toolbar button. Arbitrary rotations are useful for correcting for a horizon that is not quite horizontal, or in any case where rotations by 90 degrees will not cut it. A live preview of the rotation is available at interactive speeds. The rotation may be performed in a number of different modes and with a number of different filters (including the ability to rotate pixel art). The various modes include fill, which fills rotated-in empty-areas with a fill-colour, crop which crops the image where empty pixels are rotated in, and crop resize that does the crop but then resizes the image back to original dimensions.

    Additionally there is now the ability to edit a specific pixel's colour and a big cleanup to the UI, especially for the canvas resize dialogs. For this dialog tabs are now used for the 3 canvas resize modes: anchor, remove borders, and aspect. Improvements and fixes include:

    • Ability to use the cursor position as the anchor during canvas resize operations.
    • Big cleanup to the resize dialogs. Use Ctrl-R for canvas resize, and Alt-R for image resize. R by itself is for rotate.
    • A fine-tune drag-widget for rotation adjustments.
    • Ability to rotate an image while zoomed-in.
    • Ability to move the cursor around one pixel at a time using shift plus the arrow keys.
    • A pixel colour editor.
    • Border removal functionality with per-colour-channel matching (including alpha).
    • Rework of all canvas resize dialogs into one dialog with 3 tabs.
    • All fill-colour UIs allow picking the current cursor colour or the lower-left origin pixel colour.
    • Crop mode rotations deal with the aspect ratio becoming inverted for rotations outside of 45 degrees.
    • Cleanup of the FlipH and FlipV toolbar icons and addition of the Rotate Theta icon.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-19.deb(2.16 MB) MB)
  • v1.0.18(Dec 30, 2020)

    The heavy-lifting for this release is largely from improvements in the Tacent library. All image filtering is now done natively. Supported resample filters (for resizing an image) now include: Nearest neighbour, box, bilinear, bicubic, Catmull-Rom, Mitchell, pure cardinal, b-spline, plus 3 variants of Lanczos (narrow, normal, and wide).

    In addition, the resizing dialogs have been reworked to be more powerful. There are 3 new edit-menu dialogs for resizing: Resize Image allows you to specify the new dimensions and uses one of the above resample filters, Resize Canvas allows you to specify an anchor and a new size without filtering -- if the new image is larger you can specify the fill colour, if smaller cropping occurs. The last option, Resize Aspect, is similar to Resize Canvas but allows you to specify the new desired aspect ratio and either have the new image be cropped or add letterbox padding -- often useful processing photos.

    Additional features and improvements include:

    • Ability to specify the edge mode (clamp of wrap) when using resize filters. Useful for textures that will be tiled.
    • Support for multipage TIFFs using official libtiff 4.2.0.
    • BMP loading supports more pixel formats (including 32 bit with alpha). BMP saving to 24 or 32 bit is more robust.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-18.deb(2.13 MB) MB)
  • v1.0.17(Nov 17, 2020)

  • v1.0.16(Nov 12, 2020)

  • v1.0.15(Oct 19, 2020)

    Updates to backend libraries including Tacent (0.8.1), GLFW (3.3.2), zlib (1.2.11) and OpenEXR (2.5.3). Added new 'transparent work area' feature so that images with alpha can be displayed over whatever you have on your desktop, Open 'Settings' to turn this on and off. Requires restart of viewer for changes to take effect.

    Fixes and Improvements:

    • New OpenEXR lib will load faster.
    • Changing slideshow duration takes effect immediately.
    • Auto properties editor window no longer appears automatically while slideshow playing.
    • Reticle only visible if a colour-inspector (menubar or details) is visible.
    • Reticle will not disappear if mouse is close enough. Details always forces reticle to be visible.
    • Bottom control buttons and next/prev side butons will not disappear if mouse is in the vicinity.

    Tacent View

    Tacent View

    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-15.deb(1.90 MB) MB)
  • v1.0.14(Oct 12, 2020)

  • v1.0.13(Aug 23, 2020)

    This is primarily a maintenance/update release to get some important bug fixes out. The main feature is a slideshow countdown indicator (that may be turned off) with adjusted slideshow durations.

    • Dear ImGui updated to v1.78.
    • Linux-only. Multithreaded thumbnail generation could fail for a small percentage of images. This is resolved.
    • Windows-only. Windows 10 v2004 dark-mode title-bar was not being activated and is fixed.
    • Better slideshow default durations and ability to set 10, 30,or 60 fps durations in the preferences.
    • Slideshow indicator displayed when slideshow period >= 1 second. Indicator may be turned off in the preferences or by hitting the 's' key.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-13.deb(1.85 MB) MB)
  • v1.0.12(Aug 3, 2020)

    Added a 'basic' mode that turns off all unnecessary UI elements so the viewer becomes clutter-free. The main menu and toolbar buttons can now be turned off (M key) and there is a shortcut to set all windows, dialogs, and settings to a clean viewer-only state where the image is all that is visible. Specifically, pressing the B (basic) key:

    • Turns off the navigation bar.
    • Turns off the top menu bar.
    • Closes any open dialogs (help, about, thumbnails, details, properties, etc)
    • Sets the zoom mode to downscale-only.
    • Sets the background to blank
    • Clears the auto-property-editor checkbox.
    • Sets the slideshow/play mode to looping.
    • Sets the slideshow duration to 8 seconds.

    All of these can, as before, be adjusted individually. Basic mode is just a quick way to change them all at once. This release also fixes some issues:

    • Next and previous when playing a slideshow now resets the display duration properly.
    • In looping mode while playing the slideshow, the next and previous buttons are now always present.
    • In crop-mode some UI toggles (nav-bar and menu-bar) are now disabled to avoid the image position shifting.

    What happened to v1.0.11? It is the first Snap release. There are no feature additions or significant bug fixes between v1.0.10 and v1.0.11. Tacent View (including this release) is now available on the snap store and works on many more Linux distributions.

    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-12.deb(1.64 MB) MB)
  • v1.0.10(Jul 5, 2020)

    Tacent View is now built with modern CMake scripts. Clang, GCC, and MSVC compilers are supported. JPegs load much more quickly by using libjpeg-turbo. UI improvements when resizing images. Here are the bullet-points:

    • Speedup jpg load times and higher-quality saves by using a more modern jpg library.
    • Fixed windows 'jitter' when launching in Ubuntu/Linux.
    • Fixed auto launching from some apps in Windows that were specifying paths in 8.3 format.
    • Automated generation of Ubuntu deb files and Windows zip files when using CMake install.
    • Project renamed from tacit-texview to a more reasonable Tacent View.
    • Fixed recycle bin issue on Ubuntu when deleting files.
    • Save-As and Contact-Sheet dialogs now support easily setting dimensions to next and previous powers of two.
    Source code(tar.gz)
    Source code(zip)
    tacentview_1.0-10.deb(1.65 MB) MB)
  • v1.0.9(Apr 26, 2020)

    The Windows and Linux releases now have all the same features implemented. Added support for ICO files (including newer ones with embedded PNGs) and Google's WebP format which supports lossy/lossless compression, animation (multiple frames), and an alpha channel.

    • Exr vieweing supported in the Ubuntu build.
    • Launch Nautilus using TAB key works in Ubuntu.
    • Windows and Linux now support ICO and WebP images.
    Source code(tar.gz)
    Source code(zip)
    tacittexview_1.0-9.deb(1.57 MB) MB)
  • v1.0.8(Apr 12, 2020)

    This release features a deb file that should install on both Debian and Ubuntu. Development was done on Ubuntu Eoan. Consider Linux support experimental at this point -- mostly I wanted to poke around in a different development environment. Most features and image formats are, a little surprisingly, functional (tif, jpg, tga, dds, hdr, gif). Exr files and using the tab-key to open Nautilus is still work-in-progress.

    Features and fixes for both Windows and Ubuntu include:

    • Fixed a bug where if you exited a folder while generating thumbnails no more would ever be generated on the current run of the viewer.
    • Save-as supports locking aspect ratio.
    • Fixed opening file-explorer and having correct image selected.
    • Edited files are now marked as dirty (an asterisk appears by their name) and will not auto-unload.
    • Save sub-folder defaults to current folder.
    • Minimum zoom reduced to 10%.
    Source code(tar.gz)
    Source code(zip)
    tacittexview_1.0-8.deb(1.44 MB) MB)
  • v1.0.7(Feb 23, 2020)

    Major New Features

    • Radiance HDR file support. Ability to adjust exposure and gamma correction.
    • EXR file support. Ability to adjust exposure, gamma, de-fog, and knee functions.
    • Multi-part image support including animated GIFs.
    • Property Editor Window for modifying current image display properties. You can select precisely which image you see when a cubemap or file with mipmaps is loaded. Specific frames of gifs may be displayed or resaved. Multipart EXR files also supported.
    • Play controls for any multipart image. Gif files default to auto-play. Frame duration may be overridden for all multipart files when playing.
    • The loading code for GIFs, EXRs, and HDRs is robust and is from reference implementations where possible.

    Minor Improvements

    • Option to clear thumbnail cache in preferences.
    • Clearer display of large numbers using thousands seperator.
    • Numeric pixel colour dispayed directly in details popup.
    • Ability to set global monitor gamma in preferences. Only used for HDR image types.
    • More accurate reporting of bits-per-pixel for the current image.
    Source code(tar.gz)
    Source code(zip) MB)
  • v1.0.6(Feb 3, 2020)

    Major New Features

    • Folder content view with thumbnails. Thumbnail generation is threaded and results are cached for quick retrieval.
    • Image cropping.
    • Batch save all files in a folder, optionally resizing and converting to a different format.
    • Bottom Nav-Bar for simple folder navigation.
    • Pixel outline when zoomed-in pixel is selected.

    Minor Improvements

    • Zoom percent display in details overlay.
    • Fixed zooming while image is panned.
    • More keyboard shortcuts. (F1 displays cheatsheet).
    • Fixed BMP reading bug.
    • Reload image (F5).
    Source code(tar.gz)
    Source code(zip) MB)
  • v1.0.5(Jan 5, 2020)

    Quite a few new features in this release.

    • Slideshow mode. Default is to run at 33ms (30fps), which allows flip-book images to be 'played'.
    • Save-All-As. Batch save all the files in a folder to a different format.
    • By default the background now only extends to image extents. There an option to extend it outside.
    • Tiled image view for any gamedevs using this.
    • More settings are remembered in the config file including preferred file format, filtering algo, and log visibility.
    • Delete the current image (with confirmation popup).
    • Preferences popup. Set things like the slideshow speed, background style, or reset all options to default.
    • Button to re-read values in the contact sheet generator.
    • Information overlay. Improved positioning and displays total image count.
    Source code(tar.gz)
    Source code(zip) MB)
  • v1.0.4(Jan 2, 2020)

    You can now choose the resample algorithm when saving or generating a contact sheet. Supported filters include bilinear, bicubic, quadratic, and hamming. A background other than checkerboard can now be selected, including 'none' for a clean look. Made sure to include thanks in the About page for the Roboto font. Licence readme may be found in the Data folder.

    Source code(tar.gz)
    Source code(zip) MB)
Tristan Grimmer
Tristan Grimmer
This program converts APNG animations into animated GIF format

apng2gif This project has been in disrepair for long time. Recently, there is need to change the number of loops in apng file. So I used it to modify

Ted Zyzsdy 2 Oct 27, 2022
HDRView is a simple research-oriented image viewer with an emphasis on examining and comparing high-dynamic range (HDR) images

HDRView is a simple research-oriented high-dynamic range image viewer with an emphasis on examining and comparing images, and including minimalistic tonemapping capabilities. HDRView currently supports reading EXR, PNG, TGA, BMP, HDR, JPG, GIF, PNM, PFM, and PSD images and writing EXR, HDR, PNG, TGA, PPM, PFM, and BMP images.

Wojciech Jarosz 177 Jan 5, 2023
CGIF, A fast and lightweight GIF encoder that can create GIF animations and images

CGIF, a GIF encoder written in C A fast and lightweight GIF encoder that can create GIF animations and images. Summary of the main features: user-defi

Daniel Löbl 75 Dec 28, 2022
PoC black/white image sequence to dumpy gif image sequence converter

PoC black/white image sequence to dumpy gif image sequence converter

null 69 Dec 9, 2022
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN and ACNet.

Aaron Feng 8.7k Jan 7, 2023
Arduino PNG image decoder library

An 'embedded-friendly' (aka Arduino) PNG image decoding library

Larry Bank 102 Jan 6, 2023
pngtostl is a program that converts a PNG image into STL 3D models

pngtostl is a program that converts a PNG image into a litophane, in STL format, suitable to be printed by entry level 3D printers.

Salvatore Sanfilippo 157 Dec 17, 2022
libspng is a C library for reading and writing PNG format files with a focus on security and ease of use.

libspng (simple png) is a C library for reading and writing Portable Network Graphics (PNG) format files with a focus on security and ease of use.

Randy 570 Dec 29, 2022
Qt5 image viewer with optional video support

Qt5 image viewer with optional video support

null 1.5k Jan 1, 2023
A slim, fast and header-only GIF loader written in C

gif_load This is an ANSI C compatible animated GIF loader in a single header file of less than 300 lines of code (less than 200 without empty lines an

Andrey Guskov 68 Dec 10, 2022
A GIF art engine that will allow you to generate multi-layer GIFs from single GIFs as layers.

A GIF art engine that will allow you to generate multi-layer GIFs from single GIFs as layers. All the code in this repository has been written by me in c++, inspired by the generative art engine of HashLips that does not support GIFs as layers. The problem arose from my and my teamleader's need to generate animated images and then GIFs, in the same way as HashLips generated static images.

Andre 63 Jan 2, 2023
PNG encoder and decoder in C and C++.

PNG encoder and decoder in C and C++, without dependencies

Lode Vandevenne 1.7k Dec 25, 2022
Simple, generally spec-compliant, hacky PNG Decoder written in C99.

Simple, generally spec-compliant, hacky PNG Decoder written in C99.

cristei 2 Nov 2, 2021
Very fast C++ .PNG writer for 24/32bpp images.

fpng Very fast C++ .PNG writer for 24/32bpp images. fpng.cpp was written to see just how fast you can write .PNG's without sacrificing too much compre

Rich Geldreich 639 Dec 25, 2022
Demo of a fast PNG encoder.

Fast PNG Encoder This is a proof-of-concept fast PNG encoder that uses AVX2 and a special Huffman table to encode images faster. Speed on a single cor

Luca Versari 58 Dec 27, 2022
Rate-Distortion Optimized Lossy PNG Encoding Tool

rdopng is a command line tool which uses LZ match optimization, Lagrangian multiplier rate distortion optimization (RDO), a simple perceptual error tolerance model, and Oklab-based colorspace error metrics to encode 24/32bpp PNG files which are 30-80% smaller relative to lodepng/libpng.

Rich Geldreich 40 Dec 24, 2022
Fast streaming PNG<->QOI converter with some compression-improving extensions

QOIG Fast streaming PNG<->QOI converter with some compression-improving extensions. Can achieve 1%-10% better compression than QOI without sacrificing

David Rutter 3 Oct 3, 2022
The “Quite OK Image” format for fast, lossless image compression

The “Quite OK Image” format for fast, lossless image compression

Dominic Szablewski 6k Dec 30, 2022