Just wanted to post a little teaser of my Google Summer of Code 2013 project.
I wrote some documentation to describe the new extensions to the CUPS web interface (1.6.1), and added some screenshots below.
Soon I will post information on how to obtain all of this on my blog.
Using the Per-Queue Interface
This version of CUPS has been enhanced with an interface for per-queue color management, allowing a much easier way for color-savvy users to test and distribute printer drivers in order to produce precise results.
In addition to a new interface, a means to disable color management for a given queue has been included as well. This makes it so that target printing can be achieved on individual queues.
How Do I Use It?
Click on the Printers tab at the top of this page. There you will see the usual interface for managing your printers, along with an additional “Settings” column for each of your queues.
There are two buttons available for each printer. Download simply lets you save the PPD file currently associated with a queue (where available) to your computer. If want to change the currently associated driver, use Replace to upload a PPD file from your hard drive. This will update the queue and mark a time stamp in the “Last Modified” column. Note that if you added a queue, the time stamp will simply display an asterisk (*).
Modifying any queue requires administrative privileges.
A feature to enable/disable color management has been implemented. To use it, you will need to select a queue in Printers (listed below “Queue Name”). Once selected, click on the “Administration” combo box located below the header, and select “Modify Printer”.
You will be asked to make the usual changes to a queue, but you will also see a “Color Management” check box option, where a check will enable color management for a printer. Un-check if you wish to use the queue for duties such as target printing.
Color management is enabled by default whenever you add a new queue.
Color Management ‘Switch’
(Putting it all together!)
Finalized during the 2012 Google Summer of Code, libCmpx provides an easy-to-use API for extending printer color management from within Linux print dialogs. It is divided into two modules – one to process a color profile based on settings in a print dialog (libCmpx “Selector”) and another to create a color-managed spool file based on that profile (libCmpx “Renderer”).
The library is currently being tested in Krita, which will be the first application to use it.
Please check out the libCmpx wiki page for more information.
The Krita printer color management proposal has been accepted into the 2012 Google Summer of Code!
The initial phase of this project will actually begin right now – it will involve fine-tuning the libCmpx interface, looking over the possible areas of integration in Krita, and formulating a game plan with my mentor and the key people involved with printing and color management. The official coding period begins in late May, so there is time at the moment to lay down a three-month strategy.
This project will be a huge undertaking for me, especially since color-managed printing under Linux is essentially on the cusp of becoming a reality. But I will do my best in the coming months!
I am pleased to announce the first release of KolorManager, version 0.95.
You can download the revision as a git snapshot in various formats.
(Once downloaded and installed, the application will be located in KDE’s System Settings panel under “Color Management”.)
Thank you to all who have contributed to the project over the years – KolorManager has grown due to the efforts of those who have helped code, package, translate, and offer suggestions for its further development. KDE integration would also not have been possible without those members who have given the project their support.
It is hoped that we continue to make more improvements from here on out, and that we wish to see KDE users benefit from using a system-wide color management solution like KolorManager.
Happy Easter, everyone!
I just wanted to announce that I will have some free time over the summer, and have submitted my proposal for Google Summer of Code 2012.
The project will focus on adding print color management to Krita, using libCmpx as the interface that will make it happen. Two important steps in the proposed color-managed printing workflow for Linux include selecting the right printer driver settings based on ICC profile (or vice-versa), and embedding that profile inside a PDF format. Both can be done using the libCmpx interface, making Krita the perfect application for its testing and integration.
In addition to modifying Krita’s print dialog to accept color management-related options, some more work needs to be done within libCmpx.
Since libCmpx is intended to be a ‘general’ color-managed print solution for KDE/Linux, there needs to be a way to pass an ICC profile calibrated PPD file to the CUPS print chain – whether or not the print application uses PPD files. Modifying libCmpx’s Selector module to convert between non-PPD print options (from an application’s print dialog) and the calibrated PPD file (to be sent into CUPS) would be a way to go. Oyranos code is housed in this module, and will provide the means to “translate” between the conversions.
Development within Ghostscript is also making strides in helping fine-tune its mechanism to embed a profile into a PDF/X3 file. This feature is coded within libCmpx’s Renderer module, and will likely to see some improvement during the summer.
I have just added articles for XCPD and libCmpx on ColourWiki. Feel free to check back every so often for updates on those entries.
(libCmpx — “Color-Managed Printing eXtension”)
The libCmpx project has just been opened up at gitorious:
Essentially, the goal of the library will be to provide color management to print dialogs. Where the XCPD project laid out a color management model for the CPD, libCmpx will attempt to provide a similar, more general mechanism for other print dialogs.
Unlike the XCPD project, however, libCmpx will provide no application/program for testing – it is simply a library.