# Eqlm
Simple CLI tool to spatially equalize image luminance, lightness, saturation, or brightness
## Examples
### `$ eqlm images/macaron.jpg -n 3 2 -t 0.8 -c`
| Source | Result |
| ---------------------------------- | ---------------------------------------- |
| ![Input Image](images/macaron.jpg) | ![Output Image](images/macaron-eqlm.png) |
### `$ eqlm images/yaesu-wall.jpg -m lightness -t 0.9 -n 9 6`
| Source | Result |
| ------------------------------------- | ------------------------------------------- |
| ![Input Image](images/yaesu-wall.jpg) | ![Output Image](images/yaesu-wall-eqlm.jpg) |
### `$ eqlm images/hakone.jpg -m saturation -t 0.2 --clamp`
| Source | Result |
| --------------------------------- | --------------------------------------- |
| ![Input Image](images/hakone.jpg) | ![Output Image](images/hakone-eqlm.jpg) |
## Install
```sh
pip3 install eqlm
```
## Usage
The main program can be invoked either through the `eqlm` command or through the Python main module option `python3 -m eqlm`.
```txt
usage: eqlm [-h] [-v] [-m {luminance,brightness,saturation,lightness}]
[-n M N] [-t RATE] [-c] [-e] [-u] [-g [GAMMA]] [-d {8,16}] [-s] [-x]
IN_FILE [OUT_FILE]
```
### Options
```txt
positional arguments:
IN_FILE input image file path (use '-' for stdin)
OUT_FILE output PNG image file path (use '-' for stdout)
(default: Auto)
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-m {luminance,brightness,saturation,lightness}
--mode {luminance,brightness,saturation,lightness}
processing mode (default: luminance)
-n M N, --divide M N divide image into MxN (Horizontal x Vertical) blocks
for aggregation (default: (2, 2))
-t RATE, --target RATE
set the target rate for the output level, ranging from
0.0 (minimum) to 1.0 (maximum) (default: Average)
-c, --clamp clamp the level values in extrapolated boundaries
(default: False)
-e, --median aggregate each block using median instead of mean
(default: False)
-u, --unweighted disable weighting based on the alpha channel
(default: False)
-g [GAMMA], --gamma [GAMMA]
apply inverse gamma correction before process
[GAMMA=2.2] (default: None)
-d {8,16}, --depth {8,16}
bit depth of the output PNG image (default: 8)
-s, --slow use the highest PNG compression level (default: False)
-x, --no-orientation ignore the Exif orientation metadata (default: False)
```
## License
GNU Affero General Public License v3.0
Raw data
{
"_id": null,
"home_page": null,
"name": "eqlm",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": "curegit <contact@curegit.jp>",
"keywords": "image processing, image manipulation, brightness, saturation, lightness, luminance",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/c5/1f/2fa77e3e6d4224cc1365e501efd0510fbfb02bce226f8019a9566255262c/eqlm-1.0.0.tar.gz",
"platform": null,
"description": "# Eqlm\n\nSimple CLI tool to spatially equalize image luminance, lightness, saturation, or brightness\n\n## Examples\n\n### `$ eqlm images/macaron.jpg -n 3 2 -t 0.8 -c`\n\n| Source | Result |\n| ---------------------------------- | ---------------------------------------- |\n| ![Input Image](images/macaron.jpg) | ![Output Image](images/macaron-eqlm.png) |\n\n### `$ eqlm images/yaesu-wall.jpg -m lightness -t 0.9 -n 9 6`\n\n| Source | Result |\n| ------------------------------------- | ------------------------------------------- |\n| ![Input Image](images/yaesu-wall.jpg) | ![Output Image](images/yaesu-wall-eqlm.jpg) |\n\n### `$ eqlm images/hakone.jpg -m saturation -t 0.2 --clamp`\n\n| Source | Result |\n| --------------------------------- | --------------------------------------- |\n| ![Input Image](images/hakone.jpg) | ![Output Image](images/hakone-eqlm.jpg) |\n\n## Install\n\n```sh\npip3 install eqlm\n```\n\n## Usage\n\nThe main program can be invoked either through the `eqlm` command or through the Python main module option `python3 -m eqlm`.\n\n```txt\nusage: eqlm [-h] [-v] [-m {luminance,brightness,saturation,lightness}]\n [-n M N] [-t RATE] [-c] [-e] [-u] [-g [GAMMA]] [-d {8,16}] [-s] [-x]\n IN_FILE [OUT_FILE]\n```\n\n### Options\n\n```txt\npositional arguments:\n IN_FILE input image file path (use '-' for stdin)\n OUT_FILE output PNG image file path (use '-' for stdout)\n (default: Auto)\n\noptions:\n -h, --help show this help message and exit\n -v, --version show program's version number and exit\n -m {luminance,brightness,saturation,lightness}\n --mode {luminance,brightness,saturation,lightness}\n processing mode (default: luminance)\n -n M N, --divide M N divide image into MxN (Horizontal x Vertical) blocks\n for aggregation (default: (2, 2))\n -t RATE, --target RATE\n set the target rate for the output level, ranging from\n 0.0 (minimum) to 1.0 (maximum) (default: Average)\n -c, --clamp clamp the level values in extrapolated boundaries\n (default: False)\n -e, --median aggregate each block using median instead of mean\n (default: False)\n -u, --unweighted disable weighting based on the alpha channel\n (default: False)\n -g [GAMMA], --gamma [GAMMA]\n apply inverse gamma correction before process\n [GAMMA=2.2] (default: None)\n -d {8,16}, --depth {8,16}\n bit depth of the output PNG image (default: 8)\n -s, --slow use the highest PNG compression level (default: False)\n -x, --no-orientation ignore the Exif orientation metadata (default: False)\n```\n\n## License\n\nGNU Affero General Public License v3.0\n",
"bugtrack_url": null,
"license": "AGPL-3.0",
"summary": "Simple CLI tool to spatially equalize image luminance",
"version": "1.0.0",
"project_urls": {
"homepage": "https://github.com/curegit/eqlm",
"repository": "https://github.com/curegit/eqlm.git"
},
"split_keywords": [
"image processing",
" image manipulation",
" brightness",
" saturation",
" lightness",
" luminance"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b38d6664d9aaa1e62e0f498015a6ab0a0de2379841ae32f7f22fca2c8294cd5f",
"md5": "2782d673e6725b8c74a8bdd06af4b1c4",
"sha256": "fdba0b6312d414226d95de1fec64782de48d04e5b149d2a41886d12e3a45bbe0"
},
"downloads": -1,
"filename": "eqlm-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2782d673e6725b8c74a8bdd06af4b1c4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 21439,
"upload_time": "2024-10-28T13:09:35",
"upload_time_iso_8601": "2024-10-28T13:09:35.680973Z",
"url": "https://files.pythonhosted.org/packages/b3/8d/6664d9aaa1e62e0f498015a6ab0a0de2379841ae32f7f22fca2c8294cd5f/eqlm-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c51f2fa77e3e6d4224cc1365e501efd0510fbfb02bce226f8019a9566255262c",
"md5": "859978af32e9f4cd4a7ba9d657ddfb4b",
"sha256": "01e65f878baf4fba83e3416f7ec8c7eb0869290ae2c9e041868b23d05116d45c"
},
"downloads": -1,
"filename": "eqlm-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "859978af32e9f4cd4a7ba9d657ddfb4b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 16353811,
"upload_time": "2024-10-28T13:09:38",
"upload_time_iso_8601": "2024-10-28T13:09:38.827554Z",
"url": "https://files.pythonhosted.org/packages/c5/1f/2fa77e3e6d4224cc1365e501efd0510fbfb02bce226f8019a9566255262c/eqlm-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-28 13:09:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "curegit",
"github_project": "eqlm",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "eqlm"
}