Skip to main content

Limit Image Quality, pre-commit hook

Project description

Limit Image Quality

.-.   .-..---.
| |__ | || O ,
`----'`-'`-'\\

Limit the quality of images in your repo via pre-commit.

Disclaimer

This tool does not make backups of files it changes.

This tool uses ImageMagick's quality detection. This method is not flawless and based on internal metrics that may change. This is why the recommended way to use this tool is via a Docker image with a fixed tag. It's less likely the same image will get different results if the underlying ImageMagick version does not change.

Usage

It's recommend to use pre-commit directly via the pre-build docker image we release.

Parameters

Run liq --help to get an up-to-date list. Defaults are not considered part of a stable and may change version to version.

Usage: liq [OPTIONS] PATHS...

  .-.   .-..---.  Qteal
  | |__ | || O ,  fixing systems, not people
  `----'`-'`-'\\  v0.1

  Limit the quality of JPG images.
  When running with --fix it will overwrite the file(s) in question.
  No backups are made. This is a potentially destructive operation!
  Exits with 1 if any files where/would have been changed.

Options:
  --version                    Show the version and exit.
  -q, --quality INTEGER RANGE  [default: 75; 0<=x<=100]
  --fix / --no-fix             [default: no-fix]
  -v, --verbose                log the detected quality of every image
  --help                       Show this message and exit.

pre-commit

The intended use is via the provided hook in the repo, using the docker hook:

repos:
  # This repo <3
  - repo: https://gitlab.com/Qteal/oss/liq
    rev: main
    hooks:
      - id: limit-image-quality-docker
        args: [-q75, --fix]

Then run pre-commit autoupdate to transform the main rev into the latest release.

There is also a hook that does not use docker (limit-image-quality), for which you have to install ImageMagick yourself according to Wand's documentation. This hook is usually quicker, but is more likely to result in version differences as it relies on system software.

Docker image

It's also possible to use the docker image directly. The image is published to registry.gitlab.com/qteal/oss/liq/liq.

Every release gets a tag, latest is always up-to-date with the latest release. You can also use branch name tags, so main is good for those living on the bleeding edge.

Pip

The Python package is also push to the package registry of this repo (for all builds on main) and pypi (for releases).

Install via pip as pip install liq.

Run liq --help for more info.

You must install the required system dependencies of Wand yourself.

Local Development

Only supported on Linux or something Linux like enough that I won't notice when you make a merge request.

If you want to work on this project, you need to have ImageMagic installed including the development libraries and headers. It's recommended to follow the installation instructions in Wand's documentation.

Use Hatch to set up the project environment.

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

liq-0.1.2.tar.gz (222.2 kB view details)

Uploaded Source

Built Distribution

liq-0.1.2-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: liq-0.1.2.tar.gz
  • Upload date:
  • Size: 222.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for liq-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0ffe10f444175fb2c08733c60fa8c7912a27e2b7ba25667c26bd6c75dc562f03
MD5 f3a6937864cb35aaa8212cf3e9460135
BLAKE2b-256 aa93310755549686da24da5464714a7dd1be572f86de9912987df52849e58edd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: liq-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for liq-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 97d2d646b2e87b745c3db8f7a4e3df10a2892cfc9493e84c0d20c2c12d80177d
MD5 e86cb0cf177b72b4ee5acfc9e9382e25
BLAKE2b-256 002dadd1fe486d4152d923e50e5b767a6e1f46ef4838b504e3583d85210e14b6

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