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

Uploaded Python 3

File details

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

File metadata

  • Download URL: karuka-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 eb425312dc7c1effdad8d0a1f84cf3a2ead455022a6c143002beadfea06fe566
MD5 a44e59c8715a3cf1b71939fded44581d
BLAKE2b-256 edd365813a3430d75bcc46a05c784f23bf0ad18adefadccfaa8a66ea7e69435e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: karuka-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7cf7e431b646ff039c62aaf17d98ad1bdd7743965d1cd1392768208bb3333b18
MD5 ff30ad49904789c32410c2d0a29e9a24
BLAKE2b-256 65bcaca4d1b00f3386fce99870702c9d8680ca858d439097912460fc2b068c69

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