Skip to main content

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.

Fourteen Balls test image by Bill Atkinson

Fourteen Balls soft proof with perceptual rendering intent and black point compensation

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)

Source distribution for benekli 2025.1
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)

Table of built distributions (wheels) for benekli 2025.1
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

2025.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page