This project is still a work-in-progress.
benekli
benekli is a helper utility for soft proofing images. It has two purposes:
- generate soft proofs of the images/photos (i.e. how a photo would look like when it is printed)
- calculate color difference (delta E) between the original and soft proofs, so the best representation can be selected
Soft proofing can be done in many applications including Adobe Photoshop. However, it is cumbersome to use it with multiple images, with multiple simulated profiles and with different proofing options (e.g. rendering intent, black point compensation). This process can be easily automated with benekli.
The color difference (delta E) can be calculated with some applications or tools, but it is not that common in user applications. benekli can calculate delta E according to CIE 1976, CIE 1994 or CIEDE 2000 formulas and it generates an RGB image representing the delta E values.
benekli is a Turkish word meaning spotted, speckled or mottled in English, i.e. benekli elbise means spotty dress.
Installation
benekli is a Python application using Pillow imaging library. It can be installed from pip.
$ pip install benekli
This installs the Pillow dependency. Required Pillow modules; littlecms2, libtiff and jpg are checked in runtime.
Check the installation with:
$ benekli
Usage
To soft proof Bill Atkinson's Fourteen Balls test image (which is an extreme example in ProPhoto RGB color space) for my printer (Epson SC-P800) using Epson Archival Matte paper (and I saved the profile of my display as display.icc):
$ benekli -v -s SC-P800\ Series\ Epson\ Archival\ Matte.icc -d display.icc -i FourteenBalls.tif -o FourteenBalls.p.bpc.tif -r p --bpc
INFO: benekli.py: input image is RGB
INFO: benekli.py: using the embedded profile in FourteenBalls.tif
INFO: benekli.py: image profile: ProPhoto RGB
INFO: benekli.py: simulated profile: SC-P800 Series Epson Archival Matte
INFO: benekli.py: display profile: SW271 1_D50_L100_G22_2025-03-18T14.58.41Z
soft proof generated: FourteenBalls.p.bpc.tif
generates FourteenBalls.p.bpc.tif soft proof.
Be aware that what you will see below will be different depending on how wide the color gamut of your display is. I am checking these on a wide-gamut display with ~100% AdobeRGB coverage. You can test your display at wide-gamut test page.
License
Copyright (C) 2025 Mete Balci
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Metadata
Release files for benekli 2025.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 | Provenance | Actions |
|---|---|---|---|---|
| benekli-2025.1.tar.gz | 22.6 kB | Without provenance | Details for benekli-2025.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| benekli-2025.1-py3-none-any.whl | Python 3 | none | any | Details for benekli-2025.1-py3-none-any.whl |
Total release size: 44.7 kB
Release files / benekli-2025.1.tar.gz
| Download URL | benekli-2025.1.tar.gz |
|---|---|
| Size | 22.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd345233922aa3522a94a8f37af1db3bd7e9059a939d570decbb4ea2bf465645
|
|
BLAKE2b-256 checksum How to use checksums |
800f70330e3698bdd6fe1481560f3309a490b64fc621b5a93ef4ab30b8056c4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / benekli-2025.1-py3-none-any.whl
| Download URL | benekli-2025.1-py3-none-any.whl |
|---|---|
| Size | 22.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
12dc0156d75739947ba92cffab8e5a748e5ed46055b06e6e3d1416ac8d8766ec
|
|
BLAKE2b-256 checksum How to use checksums |
447e05dd4de8182bd3653076c366c4aa9df9d45895312de89caf5aa59c2f2cac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Security for benekli 2025.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.