Skip to main content

Reduces the size of images for the web.

Project description

CI : Docs CI : Lint CI : Tests PyPI : shrinkix Python : versions Discord License : MIT

Description

Reduces the size of images for the web.

Documentation

Documentation is available on https://dashstrom.github.io/shrinkix

Installation from scratch

Windows (Chocolatey, Python, Visual Studio Build Tools, pipx)

Open an Admin PowerShell with windows + R, write powershell then press ctrl + shift + enter.

Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco install python --version=3.10.11 --override --install-arguments '/quiet PrependPath=1 Include_debug=1 Include_symbols=1 SimpleInstall=1' -y
choco install visualstudio2022-workload-vctools -y
pip install --upgrade wheel pip pipx
pipx ensurepath

Ubuntu (build requirement and pipx)

sudo apt -y update && sudo apt -y upgrade && sudo apt -y install python3-all-dev
pip install --upgrade wheel pip pipx
pipx ensurepath

Mac (Homebrew and pipx)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo "export PATH=/opt/homebrew/bin:$PATH" >> ~/.bash_profile && source ~/.bash_profile
brew install python
pip install --upgrade wheel pip pipx
pipx ensurepath

Package installation

You can install shrinkix using pipx from PyPI

pipx install shrinkix

Usage

Usage as script

shrinkix image.png --max-width 1024 --max-height 1024 --artist 'Dashstrom' --copyright 'dashstrom.pro@gmail.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.

Setup

You need to install Poetry and Git for work with this project.

git clone https://github.com/Dashstrom/shrinkix
cd shrinkix
poetry install --all-extras
poetry run poe setup
poetry shell

Poe

Poe is available for help you to run tasks.

test           Run test suite.
lint           Run linters: ruff linter, ruff formatter and mypy.
format         Run linters in fix mode.
check          Run all checks: lint, test and docs.
cov            Run coverage for generate report and html.
open-cov       Open html coverage report in webbrowser.
docs           Build documentation.
open-docs      Open documentation in webbrowser.
setup          Setup pre-commit.
pre-commit     Run pre-commit.
clean          Clean cache files

Skip commit verification

If the linting is not successful, you can’t commit. For forcing the commit you can use the next command :

git commit --no-verify -m 'MESSAGE'

Commit with commitizen

To respect commit conventions, this repository uses Commitizen.

cz c

How to add dependency

poetry 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.

Uninstall

pipx uninstall shrinkix

License

This work is licensed under MIT.

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

shrinkix-0.2.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

shrinkix-0.2.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file shrinkix-0.2.0.tar.gz.

File metadata

  • Download URL: shrinkix-0.2.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for shrinkix-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c77fb8521c879f89746cb87a91496dc71dacbf4a0efb96196c7a0a89c9562e2d
MD5 d9633ea4b71f0403df73f6660f8408e8
BLAKE2b-256 a3bdef67c907e6f260a1819af5720241d9863ad84a0e51b25c310311524a2fd3

See more details on using hashes here.

File details

Details for the file shrinkix-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: shrinkix-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for shrinkix-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8259e661355ab9c144f63babacbed80c96256616ad5668edaf460b461c7806d5
MD5 7ef6a5674cdd54814522f939ef60d56c
BLAKE2b-256 7a472b23746bfdb5af817128c1f6f73d445befd375c05d5002eb9a65433c5fe1

See more details on using hashes here.

Supported by

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