argyll_printer_profiling
argyll_printer_profiling copied to clipboard
A set of command sequences to create ICC profiles for inkjet printers
ArgyllCMS Printer Profiling (with X-Rite ColorMunki Photo or X-Rite i1Pro 2)
This is a Python module that lets the user to create Inkjet Printer Profiles with Argyll CMS and X-Rite ColorMunki Photo and X-Rite i1Pro 2.
The system is based on Andres Torger's tutorial. Which is a great read if you want to do a quick entry to ArgyllCMS.
How To Use
The system is developed and tested under Fedora 31/32/33/34 and Windows 10.
Windows
Follow the steps for Windows:
- Download ArgyllCMS, extract it to a folder.
Add the
Argyll_2.x.x/binfolder to yourPATHenvironment variable, so you would be able to call the commands anywhere from your command line. - Set up your ColorMunki Photo to use the ArgyllCMS driver.
- To be able to print the generated color patches with No Color Management download Dry Creek Photo Print Utility (Adobe Color Printer Utility also works, but it has a bug and prints smaller than it needs to be making it harder to read with the device).
- Install the
DryCreekPhotoPrintUtilityor if you choose to use theACPUextract theACPU.zipfile content inside the project folder. So theAdobe Color Printer Utility.exeis in theACPUfolder (ACPU\Adobe Color Printer Utility.exe).
Linux
Follow the steps for Linux:
- Install ArgyllCMS from your package manager or download executables from ArgyllCMS download page.
- Your device drivers should automatically be installed. And the device should work without a problem when you attach it to your computer (Although a simple profiler based on ArgyllCMS may pop up. Don't use it. Under Fedora 31 where the system is developed, it is not working and it doesn't have enough option ex: high resolution mode, continue reading patches, read mode alternatives etc.
- You can use Gimp + GutenPrint, and print with no color correction.
MacOS
Nearly same as Linux:
- Printing the targets with macOS requires an application that can disable the ICC profiles. Don't use Adobe Photoshop as there is no way to disable the usage of ICC profiles. Adobe Color Printer Utility is also not working properly with the latest versions of macOS. The best alternative I found so far is Print-Tool is a very suitable tool, albeit non-free.
For Both Windows and Linux
For both windows and Linux the rest of the steps are same.
Just follow the steps in the UI. The final page will install the generated ICC profile to your system. And that's it. You can then use that profile to print from applications like Photoshop, Lightroom, CaptureOne, Gimp etc.
The system is setup to use 728 color patches per A4 or 1599 color patches per
A3 size paper in high density mode and 210 color patches per A4 and 483
color patches per A3 in normal density mode. The high density mode is the
default behaviour. But it may be tedious to scan through. If that's the case,
simply don't use high density mode and print more pages.
Python Documentation
The system is now a Python library. You do not need to use the command line tools.
from icc_generator.api import ICCGenerator, PaperSizeLibrary
ig = ICCGenerator()
# Set Printer Details
ig.printer_brand = "Epson"
ig.printer_model = "ET-8550"
# Set Paper Details
ig.paper_brand = "Epson"
ig.paper_model = "VelvetFineArt"
ig.paper_finish = "Satin"
ig.paper_size = PaperSizeLibrary.A4 # Or generate a custom size.
# Set Ink Details
ig.ink_brand = "Epson"
# Profiling workflow, run the following commands in the given order:
ig.gray_patch_count = 128 # default is 128, which should be quite enough.
# set the number of pages you want to use for profiling,
# if you want to increase the number of patches.
ig.number_of_pages = 2
# to see a summary of the settings you can run:
print(ig.summary())
# Which should print:
# +-----------------------------+----------------------------------------------------------------+
# | Parameter | Value |
# +-----------------------------+----------------------------------------------------------------+
# | Printer: | |
# | Brand | Epson |
# | Model | ET-8550 |
# | | |
# | Paper: | |
# | Brand | Epson |
# | Model | VelvetFineArt |
# | Finish | Satin |
# | Size | A4 |
# | | |
# | Ink: | |
# | Brand | Epson |
# | | |
# | Profile Settings: | |
# | Number of Pages | 2 |
# | Patch Count | 1456 |
# | Gray Patch Count | 128 |
# | Copyright Info | |
# | Use High Density Mode | True |
# | Precondition Profile Path | |
# | Profile Date & Time | 20250121_1733 |
# | Profile Name | Epson_ET-8550_Epson_VelvetFineArt_Satin_A4_Epson_20250121_1733 |
# | Profile Path | /Users/eoyilmaz/.cache/ICCGenerator/Epson_ET-8550/20250121 |
# | Profile Output Path | /Users/eoyilmaz/Library/ColorSync/Profiles |
# +-----------------------------+----------------------------------------------------------------+
ig.generate_target()
ig.generate_tif() # This will output TIF file paths
ig.print_charts() # Can be skipped and TIF file paths can be directly used.
ig.read_charts()
ig.generate_profile()
ig.check_profile(True) # Look to the first couple of rows for high errors (dE > 3).
# Optional
# To fix misread patches (patches with too high dE values)
# re-read the chart in resume mode
ig.read_charts(resume=True, read_mode=0) # use read_mode=1 for patch-by-patch
# Finally install the profile
ig.install_profile()
Next, there will be a Qt UI in the near future.