Shrinkix
Reduces the size of images for the web.
Documentation
Documentation is available on https://dashstrom.github.io/shrinkix.
Installation
# Using pip
pip install shrinkix
# Using uv (install in your project dependencies)
uv add shrinkix
# Using pipx (install as a tool in a venv)
pipx install shrinkix
# Using uv (install as a tool in a venv)
uv tool install shrinkix
Usage
Usage as CLI
shrinkix image.png --max-width 1024 --max-height 1024 --artist 'You' --copyright 'you@example.com'
Usage as module
from shrinkix import Shrinkix
shrinkix = Shrinkix(
max_width=1024,
max_height=1024,
keep_metadata=False,
)
shrinkix.shrink("tests/resources/test.jpg", "test.png")
Development
Contributing
Contributions are very welcome. Tests can be run with poe check, please ensure the coverage at least stays the same before you submit a pull request.
Prerequisite
First, You need to install git following the official guide and configure it.
Then, you need to install uv and update shell path with this command:
uv tool update-shell
Finally, run these commands for setup the project with dev dependencies.
git clone https://github.com/Dashstrom/shrinkix
cd shrinkix
uv sync --all-extras --python 3.10
uv run poe setup
Poe
Poe is available for help you to run tasks: uv run poe {task} or poe task within the venv.
test Run test suite.
lint Run linters: ruff checker and ruff formatter and mypy.
format Run linters in fix mode.
check Run all checks: lint, test and docs.
check-tag Check if the current tag match the version.
cov Run coverage for generate report and html.
open-cov Open html coverage report in webbrowser.
doc Build documentation.
open-doc Open documentation in webbrowser.
setup Setup pre-commit.
pre-commit Run pre-commit.
clean Clean cache files.
How to add dependency
uv add 'PACKAGE'
Ignore illegitimate warnings
To ignore illegitimate warnings you can add :
- # noqa: ERROR_CODE on the same line for ruff.
- # type: ignore[ERROR_CODE] on the same line for mypy.
- # pragma: no cover on the same line to ignore line for coverage.
- # doctest: +SKIP on the same line for doctest.
License
This work is licensed under MIT.
Metadata
Release files for shrinkix 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| shrinkix-1.1.1.tar.gz | 4.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shrinkix-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.1 MB
Release files / shrinkix-1.1.1.tar.gz
| Download URL | shrinkix-1.1.1.tar.gz |
|---|---|
| Size | 4.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
093a883dff7ae1a4cddab78e7c939522a256e414102b521a8bb058e015cf2a2c
|
|
BLAKE2b-256 checksum How to use checksums |
7fdb1b04105e0fa4535330799974f3dec29985b6510acb9b432752b5a01d5b93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 8, 2025.
Transparency logRelease files / shrinkix-1.1.1-py3-none-any.whl
| Download URL | shrinkix-1.1.1-py3-none-any.whl |
|---|---|
| Size | 12.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b8fe487d10313bfa386a92e5c1dde7223f162eb61fa88872381f7d1d58a2a8c
|
|
BLAKE2b-256 checksum How to use checksums |
4a228dd71300975654f3e8ae010b4fe5ae0b881d04ec99a3309829b6d4e95437
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 8, 2025.
Transparency log