Reduces the size of images for the web.
Documentation is available on https://dashstrom.github.io/shrinkix
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
sudo apt -y update && sudo apt -y upgrade && sudo apt -y install python3-all-dev
pip install --upgrade wheel pip pipx
pipx ensurepath
/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
You can install shrinkix
using pipx
from PyPI
pipx install shrinkix
shrinkix image.png --max-width 1024 --max-height 1024 --artist 'Dashstrom' --copyright 'dashstrom.pro@gmail.com'
from shrinkix import Shrinkix
shrinkix = Shrinkix(
max_width=1024,
max_height=1024,
keep_metadata=False,
)
shrinkix.shrink("tests/resources/test.jpg", "test.png")
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.
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 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
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'
To respect commit conventions, this repository uses Commitizen.
cz c
poetry add 'PACKAGE'
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.
pipx uninstall shrinkix
This work is licensed under MIT.