Skip to content

SysAdminDoc/PyShop

Repository files navigation

PyShop v0.1.40

Version License Language Type

An open-source alternative to Photoshop written in Python. Full-featured image editor with layers, filters, brushes, selections, and a familiar Photoshop-inspired workflow.

Features

  • Layer System — Create, reorder, merge, and manage multiple layers with blend modes and opacity
  • Selection Tools — Rectangular, elliptical, lasso, and magic wand selections
  • Brush Engine — Customizable brushes with size, opacity, and hardness controls
  • Filters & Effects — Editable effect layers for blur, sharpen, stylize, and pixel filters plus color adjustments and transforms
  • File Support — Save and reopen native .pyshop layered projects; import common raster formats, camera RAW files, PSDs, and OpenRaster; export flattened raster images, export presets, batch conversions, layered/flattened PSDs, and OpenRaster
  • Dark Theme — Professional dark-themed interface
  • Undo/Redo — Full history support
  • Automation — Record, save, load, replay, and persist action macros with workspace presets
  • Responsive Jobs — Open, save, export, and effect rasterize operations run through cancellable status-bar background jobs
  • Recovery — Atomic saves, job error logs, and autosave recovery projects protect in-progress work
  • Windows Integration — User-scope .pyshop file association, Explorer image context menu, and command-line file opening
  • Plugin Discovery — Validates plugins/<plugin>/plugin.json manifests and lists discovered plugins in the Plugins menu

Installation

python -m pip install -r requirements.txt
python pyshop_image_editor.py

For development and smoke tests:

python -m pip install -r requirements-dev.txt
python -m pytest -q

Requirements

  • Python 3.10-3.12
  • PyQt5 5.15.x
  • Pillow 12.2.x
  • numpy 1.24.x-2.x
  • rawpy 0.25+

PyQt5 is available under GPL/commercial licensing from Riverbank. Keep that license boundary in mind before redistributing packaged builds.

Manual QA Checklist

  • Open an existing PNG or JPG and confirm the canvas renders with zoom and pan working.
  • Import a PNG, JPG, or PSD and confirm Save As defaults to a .pyshop project instead of overwriting the source file.
  • Save a layered .pyshop project, reopen it, and confirm layers, masks, groups, text/vector metadata, paths, guides, channels, macro steps, and color profiles are preserved.
  • Paint with brush and eraser tools, then undo and redo the edits.
  • Add, duplicate, reorder, hide, lock, and merge layers while confirming the canvas composite updates.
  • Create rectangular, elliptical, lasso, and magic wand selections, then clear and invert selections.
  • Apply one adjustment and one filter to the active layer.
  • Save the document, export with a preset, batch-export two inputs, and reopen the output images.
  • Run python -m pyshop.windows_shell print and confirm the generated open command points at the current PyShop launch path.
  • Add a temporary plugins/sample/plugin.json, refresh the Plugins menu, and confirm the manifest appears without executing plugin code.

Related Tools

Tool Type Best For
PyShop (this repo) Python desktop app Native desktop image editor with familiar app behavior
Openshop Single-file browser app Zero-install editing in any browser with 33 tools, PSD import, and offline use

If you want an image editor with no Python install required, see Openshop — a single HTML file that runs entirely in your browser.

Project Planning

License

MIT License

About

An open source alternative to Photoshop written in Python.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages