JarkViewer is a single file Windows viewer for the formats Explorer cannot open
一款简约且飞快的看图软件,支持 AVIF、HEIC、JPEG-XL 和 实况照片 等超多新兴图像格式!A minimalist and lightning-fast image viewer that supports a wide range of emerging image formats such as AVIF, HEIC, JPEG-XL, and Live Photos!
At a glance
- What is it?
- JarkViewer is a statically linked, portable Windows image viewer whose reason to exist is format coverage: AVIF, HEIC, JPEG XL, a long list of RAW formats, iOS Live Photos and Android motion photos, plus a built in video and audio player. It also ships an Explorer thumbnail provider, and the version numbering and the dependency notes do not quite agree with each other.
- Who is it for?
- JarkViewer suits a Windows user whose photo library has grown formats that the built in viewer refuses, and it suits anyone who wants a portable single file tool that leaves no installer behind. It is the wrong choice on macOS or Linux, because the project ships a Windows 10 and 11 64 bit build only, and a poor match if you want a scriptable batch tool, since the batch processing lives behind a keyboard shortcut in a GUI rather than behind a command line.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 6 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
One portable file, and a very wide format list
JarkViewer is described as a minimalist and fast Windows image viewer, and the distribution model is part of the design: a single portable file with all dependencies statically linked, usable by double clicking it, with no installer and nothing left in the system. The project calls it a green, installation free package.
The feature that justifies it is format coverage. The static format list reads apng, avif, avifs, blp, bmp, dds, dib, exr, gif, hdr, heic, heif, ico, icon, jfif, jp2, jpe, jpeg, jpg, jxl, jxr, lep, livp, pbm, pcx, pfm, pgm, pic, png, pnm, ppm, psd, psdt, pxm, qoi, ras, sr, svg, tga, tif, tiff, webp and wp2. That is a set that goes well past what a Windows system viewer handles: AVIF and AVIFS, HEIC and HEIF, JPEG XL, the QOI and Radiance formats, EXR and HDR, PSD, JPEG 2000, SVG, and the less common ones.
The dynamic formats are gif, webp, png, apng, jxl and avif, so animated content in any of the modern formats plays in the viewer rather than showing a still.
The RAW list is long and specific, covering 3fr, ari, arw, bay, cap, cr2, cr3, crw, dcr, dcs, dng, drf, eip, erf, fff, gpr, iiq, k25, kdc, mdc, mef, mos, mrw, nef, nrw, orf, pef, ptx, r3d, raf, raw, rw2, rwl, rwz, sr2, srf, srw and x3f, which is a good sample of what a camera can produce.
The audience is therefore someone with a mixed photo library and a Windows machine, and the alternative is a viewer per format or a general image tool that does the same job with more weight. The project publishes releases on GitHub with a SourceForge mirror, has a project page, and carries badges pointing to DeepWiki and to a code reading service, which is a sign the codebase is documented for inspection.
The interaction model is a keyboard shortcut table
The readme documents the viewer's controls as a table, and the pattern is that everything is a single key or a single click, with the mouse optional.
Navigation is the left and right window edges by click or scroll, the arrow keys, PgUp and PgDn, and space to advance to the next still image. Zoom is the scroll wheel in the middle of the window, the up and down arrows, and the number 5 on the numeric keypad to switch between actual size and fit to window. Rotation is a click or scroll in either top corner of the window, or Q and E. Panning is a mouse drag, or the W A S D keys. The EXIF panel is a middle click, Tab, or I. Fullscreen is a double click, F, or F11. Slideshow is P, with the order and interval adjustable in settings.
Beyond that, animated images can be stepped frame by frame with J for the previous frame, K to pause and continue, and L for the next frame. Home and End jump to the first and last image. Delete moves the file to the recycle bin, with the confirmation prompt disableable in settings. Ctrl+O opens a file, and files can also be dropped onto the window. Ctrl+C copies the image, Ctrl+P prints, Ctrl+E opens editing and annotation, Ctrl+B opens batch processing, Ctrl+R renames, and Ctrl+S splits an animation into individual PNG files. F1 through F4 are the general, file association, help and about settings pages.
Two interface details are worth calling out. Moving the mouse to the bottom of the window expands a strip of thumbnails from the same directory, which you can page through with the wheel or the arrow keys, and it retracts when the pointer leaves. And the bottom right corner carries a bird's eye view showing the whole image with the currently visible area drawn as a rectangle, which you can drag to jump to any corner of a very large picture.
For the underlying implementation, the feature list says decoding does not block the interface, thumbnails and adjacent images are pre-read, and a still image is re-sampled at the display resolution once it settles, so that zoomed in text and zoomed out fine texture both stay legible. That is a rendering strategy rather than a feature, and it is the difference between a viewer that feels fast and one that does not.
Editing, printing and batch processing in the same window
JarkViewer does more than display, and the extra capabilities are the ones that decide whether it replaces your other tools.
The print preview, reached with Ctrl+P, offers contrast and brightness adjustment, an invert option, and four colour modes: colour, black and white, black and white document, and black and white dither. The document mode balances overall brightness to bring out writing and avoid the effect of local shadows, and the dither mode simulates grey levels with the density of pure black pixels, which is aimed at dot matrix and thermal printers.
The editor, reached with Ctrl+E, offers rectangle, ellipse, arrow, line, brush, mosaic and text annotations, with adjustable colour, line width, font size and fill. It has undo and redo, rotation, flipping and inversion, and cropping, and the result can be saved as a new file, copied to the clipboard, or written over the original file. One detail is stated precisely: PNG keeps its transparency, while a transparent region in a JPG is filled with white.
Batch processing, reached with Ctrl+B, works on the images in the current directory. It converts formats, with HEIC, AVIF and RAW participating, and outputs JPEG, PNG, WebP, BMP, TIFF among others. It scales by percentage, by width, by height, by custom dimensions, which can stretch, or by a long side limit that never enlarges. The resampling algorithm is automatic, using area averaging to shrink and Lanczos to enlarge. It rotates, flips, and renames with a prefix and an index. There are optional brightness, contrast and colour mode adjustments, and the output can go to a chosen directory or in place, with a choice about overwriting files of the same name.
The file management side is careful in ways that matter. Renaming changes only the stem of the filename and validates empty names, illegal characters, reserved device names and name conflicts. Copying and moving never overwrite, resolving conflicts with a name like image (2).ext, and a cross drive move degrades to a copy followed by a delete. Deleting goes to the recycle bin rather than removing the file.
Live photos, motion photos, and exporting the video untouched
The live photo support is the feature that distinguishes this from a general viewer, and the details are specific.
iOS Live Photos in the livp container are recognised, as are the Android equivalents, MicroVideo and MotionPhoto, stored in jpg, heic or heif files. When opened, the motion plays once automatically and then returns to the still image, and space replays it. Whether the sound plays is controlled in the settings page, with autoplay of audio off by default.
The export path is the part with a real engineering decision in it. The export video command in the right click menu saves the video embedded in a live photo as it is, without re-encoding, which is the .mov for a livp file and the trailing MP4 for an Android motion photo. Directly opened video files can be exported the same way. Preserving the original stream matters because re-encoding a short phone clip loses quality and can break the metadata that ties it to the still image, and the project chose not to re-encode.
The same area includes the reading of AI generation metadata. The feature list notes that the project can read the prompt information embedded in images produced by open source AI tools, that is the StableDiffusion WebUI and ComfyUI output, which generally carry the prompt parameters or the workflow JSON. The documentation also warns that if an image has been re-encoded by one of the major web platforms, that information is usually stripped, so the absence of a prompt is not evidence that there was none.
The player itself opens in a separate window when you select a video or an audio file, so it does not interfere with the viewing mode, and the feature list confirms that video and audio files do not appear in the same directory paging list. It has a progress bar that shows keyframe previews while you drag it, exact seeking on release, plus and minus five second jumps, frame stepping while paused, volume control, a media information panel with the path, size, duration, container, total bitrate and the video and audio codec parameters, and a real time spectrum display for audio files that have no picture.
The Explorer thumbnail provider is the part that reaches outside the app
A bundled JarkThumbnailProvider.dll is what makes the formats visible before you open them. The readme explains that this DLL can provide thumbnails in File Explorer for formats such as JXL, AVIF and HEIC, and that in the file association settings page you tick the formats you want and apply, at which point the program registers the file associations and the thumbnail provider. If the DLL is not next to the program it is skipped rather than failing.
That is the one place where JarkViewer reaches outside its own window, and it is worth thinking about before installing it. Registering thumbnail handlers means the shell will load your provider whenever it displays those files, in every folder, so a provider that is slow or that crashes takes File Explorer with it. The project handles it by making the registration opt in per format, which is the right default, and by skipping gracefully when the DLL is absent.
There is a related note about the ICO assets in the repository root, an ico.ico, an ico.png and an ico.psd, which are the icon sources, and a buildRelease.ps1 script for the release build, a JarkViewer.slnx solution, the JarkViewer/ and JarkThumbnailProvider/ project directories, a tools/ directory and an AGENTS.md.
For a user, the practical question is whether you want the associations at all. The viewer works perfectly well as a standalone tool you open files in, and the association is what turns it into the default handler on the machine, which is a bigger change than installing an app.
Windows only, statically linked, and the version mismatch to check
Two boundaries define who can use this.
The first is the operating system. The platform badge states Windows 10 and 11, 64 bit, and the code is a Visual Studio solution with a PowerShell release script, and the Explorer thumbnail provider is a Windows shell extension. There is no macOS or Linux build, and the README does not describe a port. For a reader on another platform, the ideas are portable and the binary is not.
The second is the linking model. The project states that it is fully statically compiled, that it is a native single file, and that from version 2.0 it no longer depends on the VC++ runtime. Statically linking everything is what makes the single file promise possible, and it is also why the binary is larger than a dynamically linked build.
That version 2.0 note is where the documentation and the releases disagree, and it is worth flagging before you download anything. The most recent release tags are v1.32 on 2026-01-05, v1.33 on 2026-03-02 and v1.34 on 2026-04-20, while the last push was on 2026-10-10, so the current source is well past the last tag, and the dependency statement is written about a version 2.0 that has not been released yet. The repository is not archived, so the work is active, but a reader looking at the releases list will not find the version the features section describes.
The licence is GPL-3.0, with the LICENSE file at the repository root, and the interface ships in six languages, Simplified and Traditional Chinese, English, Japanese, Korean and Russian, following the system or set manually, with light and dark themes. The last point that most affects daily use is the transparency handling, where transparent areas are drawn on an international chessboard pattern so you can see what is actually transparent.
Editorial conclusion
JarkViewer suits a Windows user whose photo library has grown formats that the built in viewer refuses, and it suits anyone who wants a portable single file tool that leaves no installer behind. It is the wrong choice on macOS or Linux, because the project ships a Windows 10 and 11 64 bit build only, and a poor match if you want a scriptable batch tool, since the batch processing lives behind a keyboard shortcut in a GUI rather than behind a command line. Before adopting, check the format list against the files you actually have, confirm the release you download matches the behaviour described in the readme, since the note about dropping the VC++ runtime applies from version 2.0 while the current release is 1.34, and decide whether you want the Explorer thumbnail provider registered at all.
Frequently asked questions
Which image formats can JarkViewer open?
The static list includes apng, avif, avifs, blp, bmp, dds, dib, exr, gif, hdr, heic, heif, ico, jfif, jp2, jpeg, jpg, jxl, jxr, livp, pcx, png, psd, qoi, ras, svg, tga, tiff, webp and wp2, and the RAW list covers around forty camera formats including cr2, cr3, arw, nef, orf, dng, raf and rw2.
Can JarkViewer play iOS Live Photos and Android motion photos?
Yes. iOS livp files and Android MicroVideo or MotionPhoto images in jpg, heic and heif are recognised, the motion plays once automatically and then returns to the still, and space replays it. The embedded video can be exported as it is, without re-encoding.
Does JarkViewer add file associations and Explorer thumbnails?
It can. The bundled JarkThumbnailProvider.dll provides Explorer thumbnails for formats such as JXL, AVIF and HEIC, and the file association settings page registers the associations you tick, skipping the DLL if it is not present beside the program.
Is JarkViewer available for macOS or Linux?
No. The project ships a Windows 10 and 11 64 bit build, the code is a Visual Studio solution with a PowerShell release script, and the thumbnail provider is a Windows shell extension. The platform badge lists Windows only.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/jark006-jarkviewer)Was this useful?