HDRView is a simple research-oriented image viewer with an emphasis on examining and comparing high-dynamic range (HDR) images

HDRView

Master branch: macOS build Linux build Windows build

Develop branch: macOS build Linux build Windows build

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.

Example screenshots

HDRView supports loading several images and provides exposure and gamma/sRGB tone mapping control with high-quality dithering of HDR images. Screenshot When sufficiently zoomed in, HDRView can overlay the pixel grid and numeric color values on each pixel to facilitate inspection. Screenshot Displaying HDR images naively on a 24 bit display leads to visible banding in smooth gradients. Screenshot HDRView supports high-quality dithering (both when viewing and when saving to an LDR file) to reduce these artifacts. Screenshot

Obtaining HDRView

If you are running a recent version of macOS, you can download the pre-built binary installer DMG from the releases page. For other platforms, you will need to build HDRView from source for now.

Compiling

Compiling from scratch requires CMake and a recent version of the XCode build tools on macOS, Visual Studio 2015 on Windows, and GCC on Linux.

Linux and macOS

On Linux and macOS, compiling should be as simple as

git clone --recursive https://github.com/wkjarosz/hdrview.git
cd hdrview
mkdir build
cd build
cmake ../
make -j 4

Windows

On Windows, a few extra steps are needed.

Since MSVC's regex implementation is buggy, you first need to have the Boost regex library installed. You can find binary installers for Windows on the Boost website. Click the "More Downloads..." link and make sure to download the "Prebuilt windows binaries". You need at least Boost version 1.53. Once installed, you can run:

git clone --recursive https://bitbucket.org/wkjarosz/hdrview.git
cd hdrview
mkdir build
cd build
cmake ../
    -G"Visual Studio 15 2017 Win64"
    -DBOOST_ROOT="C:\where_you_installed_boost"
    -DUSE_BOOST_REGEX=true

You can also do this through cmake-gui if you prefer. Click Add Entry and define BOOST_ROOT to the directory where you installed Boost (by default something like C:\local\boost_1_65_0). Run Configure and select your version of Visual C++ and 64bit. After configure finishes, search for USE_BOOST_REGEX and check it. Run Configure again, and then click Generate.

Open the generated file HDRView.sln and proceed building as usual from within Visual Studio.

Installing on macOS

This should be as easy as make install. On macOS this will copy the application bundle into /Applications and create the symlink hdrview in /usr/local/bin so you can launch HDRView from the terminal.

HDRView usage

Run ./hdrview --help to see the command-line options, or run ./hdrview and hit the h button to see a list of keyboard shortcuts in the application.

hdrbatch usage

There is also a separate executable hdrbatch intended for batch processing/converting images. Run ./hdrbatch --help to see the command-line options.

License

Copyright (c) Wojciech Jarosz

3-clause BSD. For details, see the LICENSE.txt file.

HDRView depends on the following libraries (which are included explicitly or as git submodules):

  • Wenzel Jakob's NanoGUI library, which is licensed under a BSD-style license.
  • ILM's OpenEXR library, which is licensed under a modified BSD license.
  • Some stb libraries, developed by Sean Barrett and released into the public domain.
  • The tinydir library, which is licensed under a simplified BSD.
  • The docopt.cpp library, which is dual-licensed under MIT and Boost licenses.
  • Gabi Melman's spdlog library, which is licensed under the MIT license.
  • syoyo's tinydngloader library, which is licensed under the MIT license.
Owner
Wojciech Jarosz
Associate Professor leading Dartmouth's Visual Computing Lab. My research in computer graphics is primarily concerned with physically based rendering.
Wojciech Jarosz
Comments
  • Build fails due to linker error

    Build fails due to linker error

    Encountered a linker error during source build on master

    Issue seems to be missing Imath_2_5::SingleMatrixExc and other symbols from OpenEXR targets install.log

  • logging verbosity

    logging verbosity

    Hello,

    First, I am a big fan of hdrview. I think it's a really good tool to compare exr/hdr images.

    At latest master (3a9689c), the logging seems to become overly verbose if I hold the mouse button down and drag the image around (screenshot): Capture I am not sure exactly when it started to happen, but should be after the project migrated from bitbucket. Is it possible to add a flag to adjust the verbosity, or simply remove this kind of spammy logs?

    Thanks!

  • Color3/Color4::min()/max() conflict with macros in <windows.h> on Windows

    Color3/Color4::min()/max() conflict with macros in on Windows

    Hi,

    The latest build seems to be broken on windows because the min()/max() member of Color3/Color4 conflicts with the macros in <windows.h>. One simple fix could be to define NOMINMAX for windows, e.g.

    if(WIN32)
      target_compile_definitions(HDRView PRIVATE -DNOMINMAX)
    endif()
    

    Thanks!

  • Add missing icons requiered to execute

    Add missing icons requiered to execute "make install"

    Solves #83 by adding the missing icons using copies of the original ones.

    Testing: Compiled in Ubuntu 20.04 LTS (GCC-10).

    • make install works fine.
    • ninja install works fine.
  • Yang: Fixed win32 build problems

    Yang: Fixed win32 build problems

    • Added NOMINMAX define in CMake on Win32 to avoid Color3::min() colliding with Microsoft's min macro
    • Building zlib: using externalproject_add() function to force CMake to only build the Release configuration on Win32, supporting configurations other than Release for HDRView on Windows
    • Added details about getting boost on Win32 in README.

    Note:

    • When building hdrbatch the linker will now throw warnings because we are linking a release library to a debug executable. This might be an issue but it's still better than not being able to build at all.
    [build] LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library [C:\Ghost\repos\hdrview-jarosz\build\hdrbatch.vcxproj]
    [build] LINK : warning LNK4217: symbol 'free' defined in 'libucrt.lib(free.obj)' is imported by 'zlibstatic.lib(zutil.obj)' in function 'zcfree' [C:\Ghost\repos\hdrview-jarosz\build\hdrbatch.vcxproj]
    [build] LINK : warning LNK4217: symbol 'malloc' defined in 'libucrt.lib(malloc.obj)' is imported by 'zlibstatic.lib(zutil.obj)' in function 'zcalloc' [C:\Ghost\repos\hdrview-jarosz\build\hdrbatch.vcxproj]
    

    Testing: Built hdrview, hdrbatch on Windows via VSCode.

  • Develop (#95)

    Develop (#95)

    • Updating to OpenEXR 3
    • Closes #14
    • Closes #82
    • Closes #88
    • Fixing CMP0135 policy issues by setting -DCMAKE_POLICY_DEFAULT_CMP0135=NEW during config
    • sort improvements
    • fix crash in zap gremlins
    • centralizing cmd/alt key string processing
    • allowing 'H' to close help window
  • Make install cannot find

    Make install cannot find "icon-96.png"

    After compiling in Ubuntu 20.04 (GCC-10) running make install gives the following error:

    -- Install configuration: "Release"
    -- Installing: /usr/local/bin/HDRView
    -- Installing: /usr/share/applications/hdrview.desktop
    -- Installing: /usr/share/icons/hicolor/1024x1024/apps/hdrview.png
    -- Installing: /usr/share/icons/hicolor/512x512/apps/hdrview.png
    -- Installing: /usr/share/icons/hicolor/256x256/apps/hdrview.png
    -- Installing: /usr/share/icons/hicolor/128x128/apps/hdrview.png
    CMake Error at cmake_install.cmake:125 (file):
      file INSTALL cannot find
      "/home/myUser/hdrview/resources/icon-96.png": No such file or
      directory.
    
  • Semi-transparent images flicker

    Semi-transparent images flicker

    To reproduce:

    1. Create a new image with a semitransparent background
    2. hover mouse around the image makes it flicker
    • Using brush tool on seemingly any image will make the flicker go away, and subsequent new images don't flicker.
  • HDRView UI coming out bright gray on Windows

    HDRView UI coming out bright gray on Windows

    Hi Wojciech,

    In my windows environment, the UI comes out a bright gray, as if some gamma correction had been incorrectly applied to the UI. I've confirmed that this is specific to my environment, since others are seeing the regular darker gray. Do you have any hints as to what could be causing this? Some nanogui configuration maybe?

    Thanks, Olivier

    image

  • The same file cannot be opened in another location

    The same file cannot be opened in another location

    Can be opened hdrview '/home/lab0/Pictures/SimpleAlbedo.png' Can't be opened hdrview '/media/lab0/NaGenHao/SimpleAlbedo.png' NaGenHao is another SSD.

    SimpleAlbedo

    image

Qt5 image viewer with optional video support
Qt5 image viewer with optional video support

Qt5 image viewer with optional video support

Jan 1, 2023
PoC black/white image sequence to dumpy gif image sequence converter

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

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

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

Dec 30, 2022
A simple API wrapper that generates images & facts of any animal

animality.h A simple API wrapper that generates images & facts of any animal Required dependencies: libcurl for sending HTTPS requests. pthreads for t

Nov 10, 2022
Video++, a C++14 high performance video and image processing library.

Video++ Video++ is a video and image processing library taking advantage of the C++14 standard to ease the writing of fast video and image processing

Dec 28, 2022
ppl.cv is a high-performance image processing library of openPPL supporting x86 and cuda platforms.

ppl.cv is a high-performance image processing library of openPPL supporting x86 and cuda platforms.

Dec 30, 2022
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

Dec 28, 2022
A crude untested example showing how to retrieve and display images from multiple cameras with OpenCV and wxWidgets.

About wxOpenCVCameras is a crude untested example of how to retrieve and display images from multiple cameras, using OpenCV to grab images from a came

Dec 14, 2022
Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications.

README for OpenImageIO Introduction The primary target audience for OIIO is VFX studios and developers of tools such as renderers, compositors, viewer

Jan 2, 2023
You can use this to compile the code and output images into a word doc for assignment purposes
You can use this to compile the code and output images into a word doc for assignment purposes

Code_n_Ouput_to_docx You can use this to compile the code and output images into a word doc for assignment purposes Basic requirements: Python 3.7 or

Aug 21, 2022
An open source library for face detection in images. The face detection speed can reach 1000FPS.
An open source library for face detection in images. The face detection speed can reach 1000FPS.

libfacedetection This is an open source library for CNN-based face detection in images. The CNN model has been converted to static variables in C sour

Jan 8, 2023
Convert images to ASCII art.
Convert images to ASCII art.

Image-to-ascii Convert images to ASCII art. This program using stb library to load images. Usage Usage: compile the program to get *.out file

Aug 20, 2022
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

Dec 25, 2022
Make It Pixel is a programming language to process images to look like pixel art.
Make It Pixel is a programming language to process images to look like pixel art.

Make images look like pixel art Make It Pixel is a programming language to process images to look like pixel art. Its interpreter is written in C++ an

Nov 24, 2022
Given a set of images, LeastAverageImage generates the least average -- the opposite of the average.
Given a set of images, LeastAverageImage generates the least average -- the opposite of the average.

LeastAverageImage Given a set of images, LeastAverageImage generates the least average -- the opposite of the average. More information about the prog

Nov 27, 2022
A simple pixel-wise image comparator
A simple pixel-wise image comparator

imgcmp A simple pixel-wise image comparator. This tool compares between two images pixel by pixel. The features of this tool are minimal since it is d

Nov 15, 2022
Simple image to ASCII art converter

ascii-art Simple image to ASCII art converter for Windows. Does not support gifs (for now). Usage Unzip the .zip folder from the releases and put your

Jul 13, 2022