Open Image Viewer is a hardware-accelerated, open-source C++26 image viewer focused on accurate image presentation, fast navigation, and efficient keyboard-driven workflows.
It aims to present images accurately instead of simply displaying image data through the monitor color space.
For more information visit www.openimageviewer.com.
A Word from the author
Highlights and features
- Hardware-accelerated rendering with D3D11 and OpenGL renderer support.
- Fast folder browsing, sorting, slideshow playback, zooming, panning, and fullscreen viewing.
- Keyboard-first operation with the active key bindings available from F1.
- Image inspection tools including image information, texel grid, pixel inspection, and selection workflows.
- Common image actions such as crop, copy selection, paste image, rotation, flipping, and color correction.
- Codecs and third-party dependencies are built from source via repository submodules.
Windows is the supported viewer target. 64-bit builds are the official release path. 32-bit builds may compile and run but are not part of the official release flow.
Non-Windows viewer clients are not implemented yet. Core library and test builds may be configured with -DOIV_BUILD_CLIENT=OFF when working outside Windows.
Windows 7 SP1, 8, 8.1, 10, and 11 are supported targets.
When using Windows 7 SP1, install:
- Git
- CMake 3.24 or newer
- Windows SDK
- One supported Windows build setup:
- Ninja with a C++26-capable clang/clang-cl or MSVC toolchain
- Visual Studio Build Tools 2026 or newer with MSVC
Recommended Windows development stack: CMake, Ninja, clang-cl, VS Code, and the Windows SDK. This stack does not require Visual Studio Build Tools or MSVC.
git clone --recursive --depth 1 https://github.com/OpenImageViewer/OpenImageViewer.git
cd OpenImageViewerIf the repository was cloned without submodules, initialize them before configuring:
git submodule update --init --recursiveRun one of the following from an environment where the selected compiler and Windows SDK are available.
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build buildOr use the Visual Studio generator:
cmake -S . -B build
cmake --build build --config ReleaseThe viewer executable and copied resources are generated under the build tree's bin directory.
For a release-style Windows package, run:
.\publish.ps1The publish script uses Ninja internally and requires 7-Zip when packaging is enabled.
Tests are built by default with the main CMake configuration.
cmake --build build --target tests
build\bin\tests.exeOIV is distributed under the OpenImageViewer License.
