Files
pixstrip/README.md
2026-03-08 14:59:32 +02:00

7.6 KiB

Pixstrip

Batch image processor for Linux. Resize, convert, compress, strip metadata, watermark, rename, and adjust - all in one wizard or one command.

Pixstrip workflow screen

Download

Grab the latest AppImage from the releases page, make it executable, and run:

chmod +x Pixstrip-x86_64.AppImage
./Pixstrip-x86_64.AppImage

No dependencies to install. GTK4 and libadwaita are bundled inside.

Features

Pixstrip handles the operations photographers, designers, and web developers repeat on every batch of images. Each operation is a step in a wizard - enable only what you need, skip the rest.

Operation What it does
Resize Scale by width, height, exact dimensions, or fit-in-box. Social media presets included.
Adjustments Brightness, contrast, saturation, rotation, crop. Grayscale, sepia, sharpen effects.
Convert JPEG, PNG, WebP, AVIF, GIF, TIFF, BMP. Per-format mapping for mixed input batches.
Compress Optimized encoders: mozjpeg, oxipng, libwebp, ravif. Live before/after quality preview.
Metadata Strip all, privacy mode, photographer mode, or pick individual EXIF categories.
Watermark Text or image overlays. Position grid, rotation, opacity, tiling, custom fonts.
Rename Prefix, suffix, case conversion, sequential counters, regex, EXIF variable templates.

Beyond the per-image operations:

  • 8 built-in presets for common workflows (Blog Photos, Social Media, Web Optimization, and more)
  • Custom presets - save any workflow and reuse it
  • Watch folders - monitor directories and auto-process new images
  • Processing history with undo via system trash
  • File manager integration for Nautilus, Nemo, Thunar, and Dolphin
  • Full CLI with complete feature parity

Screenshots

Image selection and thumbnail grid

Images step

Resize with live preview

Resize step

Format conversion cards

Convert step

Compression with before/after preview

Compress step

Image adjustments

Adjustments step

Metadata handling with custom categories

Metadata step

Text watermark with live preview

Watermark step

Batch rename with live file preview

Rename step

Output summary and processing

Output step Processing complete

Settings and extras

Save as preset Settings Processing history Keyboard shortcuts

GUI Usage

Preset workflow: Pick a preset on the first screen. Pixstrip loads recommended settings and jumps to the image selection step. Add images, review the output summary, and hit Process.

Custom workflow: Select Custom, toggle the operations you want, then step through each one. Every step has a help button with guidance specific to that operation. Advanced options are tucked behind expanders to keep the interface clean.

The step indicator at the top shows your progress. Click any completed step to jump back. Disabled steps are automatically skipped. Navigate with Back/Next buttons or Alt+Left/Alt+Right.

CLI Usage

The CLI mirrors every GUI feature. Process images with flags, presets, or a combination of both.

# Resize to 1200px wide
pixstrip process photos/ --resize 1200

# Convert to WebP at high quality
pixstrip process *.png --format webp --quality high

# Fit within 1920x1080, strip metadata, rename to lowercase
pixstrip process photos/ --resize fit:1920x1080 --strip-metadata --rename-case lower

# Use a saved preset
pixstrip process photos/ --preset "Blog Photos"

# Override a preset option
pixstrip process photos/ --preset "Blog Photos" --resize 800

# Fine-tune compression per format
pixstrip process photos/ --jpeg-quality 90 --webp-quality 85 --avif-quality 70

# Add a tiled diagonal watermark
pixstrip process photos/ --watermark "(c) 2026" --watermark-tiled \
  --watermark-rotation 45 --watermark-color ff0000

# Combine everything
pixstrip process photos/ -r --resize fit:1920x1080 --format webp \
  --quality high --strip-metadata --rename-case lower -o output/

Rename templates support variables:

Variable Value
{name} Original filename without extension
{ext} File extension
{counter} Sequential number
{counter:N} Sequential number with N-digit padding
{width} Image width in pixels
{height} Image height in pixels
{date} File modification date (YYYY-MM-DD)
pixstrip process photos/ --rename-template "{name}_{width}x{height}.{ext}"

Built-in Presets

Preset Operations
Blog Photos Resize 1200px wide, JPEG high quality, strip all metadata
Social Media Fit 1080x1080, compress medium, strip metadata
Web Optimization Convert to WebP, compress high, sequential rename
Email Friendly Resize 800px wide, JPEG medium quality
Privacy Clean Strip all metadata, no other changes
Photographer Export Resize 2048px, compress high, privacy metadata, rename by date
Archive Compress Lossless compression, preserve metadata
Print Ready Maximum quality, convert to PNG, keep all metadata

Watch Folders

Monitor directories for new images and process them automatically with a preset.

# Add a watch folder
pixstrip watch add ~/incoming --preset "Web Optimization"

# List active watches
pixstrip watch list

# Start watching
pixstrip watch start

# Remove a watch
pixstrip watch remove ~/incoming

In the GUI, watch folders are configured in Settings.

File Manager Integration

Right-click images in your file manager to process them with Pixstrip. Toggle integration per file manager in Settings.

File Manager Method
Nautilus (GNOME Files) Python extension, dynamic preset submenu
Nemo (Cinnamon) Python extension, dynamic preset submenu
Thunar (Xfce) Custom action, regenerated when presets change
Dolphin (KDE) Service menu, regenerated when presets change

Building from Source

Requires Rust 1.85+, GTK4 4.16+, and libadwaita 1.6+.

# Install GTK4/libadwaita dev packages (Ubuntu/Debian)
sudo apt install libgtk-4-dev libadwaita-1-dev

# Build
git clone https://git.lashman.live/lashman/pixstrip.git
cd pixstrip
cargo build --release

# Run
./target/release/pixstrip-gtk    # GUI
./target/release/pixstrip-cli    # CLI
Build an AppImage

The included build script bundles all dependencies into a portable AppImage.

./build-appimage.sh

This downloads linuxdeploy and its GTK plugin on first run, bundles the GTK4 libraries, and produces Pixstrip-x86_64.AppImage.

Project Structure

pixstrip/
  pixstrip-core/    Shared library - image operations, presets, pipeline, watcher
  pixstrip-gtk/     GTK4/libadwaita GUI application
  pixstrip-cli/     Command-line interface
  data/             Desktop file, metainfo, icons, screenshots

License

CC0 - Public Domain. Do whatever you want with it.