Skip to content

stevenke1981/photo-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Photo Tool

Rust + egui image viewer and converter with 360-compatible JPEG export.

Current Features

  • Traditional Chinese UI by default, with an English language switch.
  • Larger default desktop window for image work.
  • Open and preview images in the desktop app.
  • Open folders and browse supported images.
  • Drag image files or folders into the window to open them, including multi-file drops that pick the first supported image.
  • Launch the GUI with an image or folder path argument.
  • Clear the current canvas and restore the last cleared canvas state.
  • Inspect basic image information.
  • Zoom to fit, view at 100%, zoom in/out buttons, and mouse-wheel zoom over the preview.
  • Rotate, flip, resize, and crop the current image without overwriting the source.
  • Select local rectangular or circular regions on the canvas.
  • Apply brightness, contrast, saturation, exposure, blur, sharpen, grayscale, and invert to the whole image or only the selected region.
  • Use Undo / Redo for image edits.
  • Save the current edited/composited result as a new image file.
  • Add a text watermark as an editable layer.
  • Add editable text layers over an image, including per-layer font selection with live font previews.
  • Add image/icon layers from files.
  • Paste image layers from the clipboard.
  • Move layers up/down, hide/show them, delete them, align them, and edit position, size, opacity, text color, stroke, and shadow.
  • Show selected text bounds based on the actual rendered text size.
  • Drag selected layers directly on the canvas.
  • Use Undo / Redo for layer edits.
  • Duplicate layers.
  • Use Delete to remove a selected layer and arrow keys to nudge it.
  • Save and reopen editable .photo-project files with the background image and layers intact.
  • Export the flattened composition as a new image.
  • Convert images between JPEG, PNG, WEBP, BMP, and TIFF.
  • Batch convert folders with optional resize-to-fit.
  • Create animated GIF files from a folder of images, with frame delay, looping, and optional resize settings.
  • Export one image as a 2:1 360-compatible JPEG with GPano/XMP metadata.
  • Use CLI commands for repeatable smoke tests.

Run the App

cargo run -p photo-tool

For the packaged app, run:

.\dist\photo-tool.exe

Development

cargo fmt --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
cargo run -p photo-tool

CLI

cargo run -p photo-cli -- info input.jpg
cargo run -p photo-cli -- convert input.png output.jpg --format jpg --quality 90
cargo run -p photo-cli -- batch input-folder output-folder --format webp --quality 90 --max-width 2048 --max-height 2048
cargo run -p photo-cli -- gif input-folder output.gif --delay-ms 120 --max-width 800 --max-height 800
cargo run -p photo-cli -- pano360 input.jpg output_360.jpg --mode pad --width 2048 --quality 92

Release Build

.\scripts\build-release.ps1

Optional full check-and-build:

.\scripts\build-release.ps1 -RunTests

Windows Bash Build

For Git Bash or MSYS2, build both debug and release binaries:

./scripts/build-windows.sh

Optional:

./scripts/build-windows.sh --run-tests
./scripts/build-windows.sh --debug-only
./scripts/build-windows.sh --release-only

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors