Metadata-Version: 2.4
Name: karuka
Version: 0.1.1
Summary: A small Tkinter desktop image editor for resizing, cropping, rotating, converting, and removing backgrounds.
Author: TempleDiary
Maintainer: TempleDiary
License-Expression: MIT
Project-URL: Homepage, https://github.com/TempleDiary/karuka-image-editor
Project-URL: Issues, https://github.com/TempleDiary/karuka-image-editor/issues
Project-URL: Source, https://github.com/TempleDiary/karuka-image-editor
Keywords: image-editor,tkinter,pillow,resize,crop,batch-resize,heic,background-removal
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: X11 Applications
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Pillow>=10.0.0
Requires-Dist: tkinterdnd2>=0.4.3
Provides-Extra: bgremove
Requires-Dist: rembg>=2.0.0; extra == "bgremove"
Provides-Extra: heic
Requires-Dist: pillow-heif>=0.16.0; extra == "heic"
Provides-Extra: all
Requires-Dist: rembg>=2.0.0; extra == "all"
Requires-Dist: pillow-heif>=0.16.0; extra == "all"
Provides-Extra: dev
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"
Dynamic: license-file

# 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](karuka_screenshot.png)

## 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:

```bash
python -m pip install karuka
```

From a local checkout:

```bash
python -m pip install .
```

For AI background removal support:

```bash
python -m pip install ".[bgremove]"
```

For HEIC input/output support:

```bash
python -m pip install ".[heic]"
```

For all optional image features:

```bash
python -m pip install ".[all]"
```

For packaging and publishing checks:

```bash
python -m pip install ".[dev]"
```

## Run

After installation:

```bash
karuka
```

On Linux, install a desktop menu launcher and icon:

```bash
karuka-desktop
```

From a source checkout:

```bash
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

```text
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

```bash
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`.
