Skip to main content

A small Tkinter desktop image editor for resizing, cropping, rotating, converting, and removing backgrounds.

Project description

Karuka Image Editor

Built and open sourced by TempleDiary.

Karuka Image Editor is a small Python desktop app for common image editing tasks:

  • open and browse local image folders
  • drag and drop image files into the app
  • resize images with optional exact-size crop
  • batch resize folders into another folder while keeping file names
  • crop with a drag selection
  • rotate left or right
  • convert images to JPEG, JPG, PNG, or HEIC
  • remove backgrounds with the optional rembg extra
  • save edited output to the user's Downloads folder
  • bundled Karuka logo and desktop window icon

Screenshot

Karuka Image Editor screenshot

Requirements

  • Python 3.10 or newer
  • Tkinter, usually included with Python. On some Linux distributions it is a separate system package such as python3-tk.
  • tkinterdnd2, installed by the project, enables desktop drag-and-drop support.

Install From Source

After the public PyPI release:

python -m pip install karuka

From a local checkout:

python -m pip install .

For AI background removal support:

python -m pip install ".[bgremove]"

For HEIC input/output support:

python -m pip install ".[heic]"

For all optional image features:

python -m pip install ".[all]"

For packaging and publishing checks:

python -m pip install ".[dev]"

Run

After installation:

karuka

On Linux, the first karuka launch also creates a desktop menu launcher and icon when possible. If the desktop entry needs to be recreated manually:

karuka-desktop

From a source checkout:

python -m karuka_image_editor

Batch Resize And Convert

Use Batch Resize / Convert in the editor panel to choose a source folder, output folder, target size, exact-size crop mode, and output format.

The output folder defaults to Downloads/karuka_batch_output. Files are saved with the same base name and the selected output extension, for example photo.png becomes photo.jpeg when JPEG is selected.

HEIC support depends on the optional pillow-heif package.

Package Layout

karuka_image_editor/core/   Image operation helpers
karuka_image_editor/ui/     Tkinter application interface
karuka_image_editor/utils/  Shared utility package
karuka_image_editor/misc/   Experimental command-line scripts

The distribution metadata lives in pyproject.toml. Package discovery includes the karuka_image_editor package, and karuka_image_editor.main provides the karuka console command.

Build

python -m build

The generated dist/ directory is ignored by git.

Project Status

This project is early-stage software. Public APIs and packaging details may change before a 1.0.0 release.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request.

Contact

Maintainer: TempleDiary

License

Released under the MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

karuka-0.1.3.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

karuka-0.1.3-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file karuka-0.1.3.tar.gz.

File metadata

  • Download URL: karuka-0.1.3.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for karuka-0.1.3.tar.gz
Algorithm Hash digest
SHA256 bd89634a0f0fba78951b54b1aae0f1d30a6c0540f48410950dde0ede41d1d95b
MD5 241ea050c15e3dad6abe3eb803abbea9
BLAKE2b-256 99900a9ae28ca6b5a8451e41356e783114856fe4c1de3ad838061a031c28b9cc

See more details on using hashes here.

File details

Details for the file karuka-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: karuka-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for karuka-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 067ad96daf5b1632cdda6e1b186e310b9b778c1a3d61c6f804e48d589193139d
MD5 32a9fb23b91fd095a6d9da930f45d42d
BLAKE2b-256 09804d473e569b0f771c6851c40373c8c86c81b530272c3154ce3f91e9ea6516

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page