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, install a desktop menu launcher and icon:

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.1.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.1-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: karuka-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 6097412095424da356e039f94503d403fdefd52d8944fe543ab9448e610065cb
MD5 55bdd841285d2188ac3a99ccd89e602f
BLAKE2b-256 061a07fc2ee0bb1c978295e44d8cae10556ee54e4f40e6a05e4c6e865f753a11

See more details on using hashes here.

File details

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

File metadata

  • Download URL: karuka-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 783721c731e4522c0990b12b6ce6b1370c106d34d13370c36c013a1224802aa0
MD5 6e108918d58e3dad8ad686fcad63f183
BLAKE2b-256 0ce3963e5d5784ca42fc11301c0831a6e7877af4a6458f0a72fb16432dde5c63

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