Skip to content

ggand0/viewskater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alt text

ViewSkater

ViewSkater is a fast, cross-platform image viewer written in Rust & Iced. It aims to alleviate the challenges of exploring and comparing numerous images. Linux, macOS and Windows are currently supported.

Features

  • GPU-based image rendering powered by wgpu
  • Dynamic image caching on CPU or GPU memory
  • Continuous image rendering via key presses and the slider UI
  • Dual pane view for side-by-side image comparison
  • Supports image formats supported by the image crate (JPG, PNG, GIF, BMP, TIFF, WebP, QOI, TGA, etc.)
  • Supports viewing images inside ZIP, RAR, and 7z (LZMA2 codec) files
  • Renders images up to 8192×8192 px (larger images are resized to fit)
  • COCO annotation support (optional feature): Display bounding boxes and segmentation masks with dual rendering modes (polygon/pixel)
  • Selection feature (optional feature): Select and export subsets of images from large datasets

Installation

Download the pre-built binaries from the releases page, or build it locally:

cargo run

To see debug logs while running, set the RUST_LOG environment variable:

RUST_LOG=viewskater=debug cargo run

To build a full release binary for packaging or distribution:

cargo build --release

Building with optional features:

# Build with COCO annotation support
cargo build --release --features coco

# Build with selection feature
cargo build --release --features selection

# Build with both features
cargo build --release --features coco,selection

See BUNDLING.md for full packaging instructions.

Usage

Drag and drop an image or a directory of images onto a pane, and navigate through the images using the A / D keys or the slider UI. Use the mouse wheel to zoom in/out of an image.

In dual-pane mode (Ctrl + 2), the slider syncs images in both panes by default. You can switch to per-pane sliders by selecting the "Controls -> Controls -> Toggle Slider" menu item or pressing the Space bar.

COCO Annotations (when built with --features coco): Drag and drop a COCO-format JSON annotation file onto the app. The app will automatically search for the image directory in common locations:

  • Same directory as the JSON file
  • images/, img/, val2017/, or train2017/ subdirectories
  • Single subdirectory if only one exists in the JSON's parent directory

If the image directory is not found automatically, a folder picker will prompt you to select the image directory manually.

Image Selection (when built with --features selection): Mark images for dataset curation while browsing. Press S to mark an image as selected (green badge), X to exclude it (red badge), or U to clear the mark. Export your selections to JSON using Cmd+E (macOS) or Ctrl+E (Windows/Linux). Selection states are automatically saved and persist across sessions.

Shortcuts

Action macOS Shortcut Windows/Linux Shortcut
Show previous / next image Left / Right or A / D Left / Right or A / D
Continuous scroll ("skate" mode) Shift + Left / Right or Shift + A / D Shift + Left / Right or Shift + A / D
Jump to first / last image Cmd + Left / Right Ctrl + Left / Right
Toggle UI (slider + footer) Tab Tab
Toggle single / dual slider Space Space
Select Pane 1 / 2 (Dual slider) 1 / 2 1 / 2
Open folder in Pane 1 / 2 Alt + 1 / 2 Alt + 1 / 2
Open file in Pane 1 / 2 Shift + Alt + 1 / 2 Shift + Alt + 1 / 2
Open file (Single pane) Cmd + O Ctrl + O
Open folder (Single pane) Cmd + Shift + O Ctrl + Shift + O
Toggle single / dual pane mode Cmd + 1 / 2 Ctrl + 1 / 2
Toggle fullscreen mode F11 F11
Close all panes Cmd + W Ctrl + W
Exit Cmd + Q Ctrl + Q

Resources

Acknowledgments

ViewSkater's slider UI was inspired by the open-source project emulsion.

License

ViewSkater is licensed under either of

at your option.

About

A fast image viewer for browsing large collections of images.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages