Nick Wilson

Home Projects Github Contact

Viewer

A drop-in replacement for Windows Photo Viewer


Light & dark backgrounds during normal operation

It's easy to set as your default image handler for many common formats

What if Windows Photo Viewer wasn't so broken?

That's what I wondered, so I tasked myself with writing a replacement.

WPV has a number of issues:

The priority for me with Viewer was always keeping resource requirements down, which was why I chose C/C++ for the project. For me, there's a huge amount of satisfaction in refining a design to make it efficient in terms of both computation and memory use. As it is, the program at idle requires ~50 to 60 MB of memory plus some factor (depending on compression) of image filesize in VRAM. Viewer uses SDL's hardware rendering to draw images with incredible speed - empirically, I can pan and zoom an ~80 MB, 28 megapixel image at 144hz with no stutters or tearing and without exceeding 7 to 8% CPU usage.

Format support covers 2 areas: some common, default formats that come for free with SDL_image, and formats that WPV explicitly doesn't support. The full list is as follows:

I would like to extend this list further, starting with RAW support, but formats start becoming less common and more complex beyond the 7 I already support. This may be a project for the more distant future.