Home

Awesome

PixelView

An image viewer optimized for low-res pixel graphics.

Features:

User's Manual

Just run the executable to open the (initially blank) application window. Drag & drop an image file there to view it.

Alternatively, run the executable with the full path of an image file as a command-line argument (e.g. by dragging and dropping an input file from the file manager onto the PixelView executable). In this case, PixelView will start up directly in full-screen mode and show the image.

PixelView has four basic view modes:

In addition, there's two scaling modes: normal and integer-only scaling. Normal mode allows any zoom level and will try to display the image with little to no aliasing at all times. In integer scaling mode, only integral scaling factors are allowed, with the following side effects:

For very tall or wide images, PixelView supports an automatic smooth scrolling feature where the visible area of the image is moved by a constant number of pixels with every video frame.

The currently configured view mode, scaling mode, aspect ratio, zoom level and display position can be saved into a file, which will then be automatically loaded if the associated image is opened the next time. The files are put into the same directory as the images, with the same name, but an additional .pxv extension. They are human-readable (and -editable) text files.

The following keyboard or mouse bindings are available:

EventAction
F1Show or hide a help window.
F2 or TabShow or hide the configuration window, where view mode, scaling mode, aspect ratio etc. can be configured
F3Show or hide the current filename and image size.
F5Reload the currently viewed image and reset the view properties to the default (or, if available, saved) state.
F10, or Q, or Esc twiceQuit the program.
F, or Numpad MultiplySwitch to Fit mode, or to Fill mode if already there.
Z, or Numpad DivideSwitch to a 1:1 zoom mode, or Fit mode if already there.
TSwitch to 1:1 zoom, or Fill mode if already there. In addition, move the visible part to the upper-left corner of the image. This also switches the view mode to Free.
IToggle integer scaling.
PSwitch into panel mode, or return to Free mode from there. This does nothing if the image isn't extremely tall or wide.
Numpad Plus / Numpad Minus, or Mouse WheelZoom into or out of the image. This also switches the view mode to Free.
click and hold Left, or Middle Mouse ButtonMove the visible area ("panning"). This also switches the view mode to Free.
Cursor KeysMove the visible area by a few pixels in one of the four main directions. This also switches the view mode to Free.
Ctrl + Cursor KeysSame, but faster (more pixels per keypress).
Shift + Cursor KeysSame, but slower (less pixels per keypress).
Alt + Cursor KeysStart automatic scrolling in one of the four main directions.
SStop automatic scrolling. If no scrolling is in progress, start scrolling in the direction with the highest distance to the edge. (For example, scroll upwards in a tall image if the currently viewed area is in the lower half of the image.)
number keys 1 to 9Set the automatic scrolling speed to one of nine presets, from slow (1) to fast (9). If no scrolling is in progress, start scrolling in an automatic direction, just like with the S key.
Home / EndQuickly move the visible area to the upper-left or lower-right corner of the image. This also switches the view mode to Free.
Ctrl + S, or F6Save the current view settings into a file.
Page Up / Page DownLoad the previous or next image file from the same directory as the currently shown image. (The sort order is case-insensitive lexicographic without any fancy support for diacritics or numerical sorting.)
Ctrl + Home / Ctrl + EndLoad the first or last image file from the same directory as the currently shown image.

Fullscreen mode is automatically enabled on startup if PixelView started with a name of an image file as a command line parameter, e.g. by dragging an image file onto pixelview.exe in a file manager. The command line option -f can be used to force starting in fullscreen mode, and -w WIDTHxHEIGHT (e.g. -w 1920x1080) can be used to force windowed mode with a specific size.

Caveats / Known Issues

Build Instructions

The repository must be cloned recursively, otherwise the third-party library dependencies will be missing. After that, a standard CMake flow is used for the main build process.

For example, on current Ubuntu and Debian systems, the following commands should install all prerequisites and build a release binary in PixelView/build/pixelview:

sudo apt install build-essential libglfw3-dev cmake ninja
git clone --recursive https://github.com/kajott/PixelView
cd PixelView
cmake -S. -B_build -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build _build

On other Linux distributions, the process is exactly the same, except that the names and means of installation of the prerequisite packages will differ of course.

On Windows, installations of Visual Studio (version 2017 or later, any edition), CMake and Git are required. Then, a "x64 Native Tools Command Prompt" can be opened and almost the same commands can be used:

git clone --recursive https://github.com/kajott/PixelView
cd PixelView
cmake -S. -B_build
cmake --build _build --config Release

On both platforms, instead of typing all these commands, Visual Studio Code and its CMake extensions can also be used to do all the heavy lifting.

Credits

PixelView is written by Martin J. Fiedler (keyj@emphy.de).

Used third-party software: