As I have seen, there is a lot of color work in progress. So it would be a great enhancement, to consider the Black preserving Rendering intents from LCMS 2.x.
I agree I will add this in over the next few weeks as I finish up the rendering intent changes.
Thomas, Now that we have moved over to lcms 2.x I was going to add this in. I see Marti has two options. One that he calls INTENT_PRESERVE_K_PLANE and one that he calls INTENT_PRESERVE_K_ONLY. I have not dug into how these differ and it was not clear to me in the documentation. Any thoughts on these?
Michael, this is great news! In the moment I looked into the Documentation and did some quick Tests with it. INTENT_PRESERVE_K_ONLY_RELATIVE_COLORIMETRIC: "Just" preserves Black, if in the Source Color CMYK a value is only in the K Channel. So pure Black. With my Test Profiles it has the following behaviour: C10, M0, Y0, K50 -->> C45, M35, Y29, K7 C10, M20, Y0, K50 -->> C45, M48, Y29, K10 C0, M0, Y0, K50 -->> C0, M0, Y0, K53 INTENT_PRESERVE_K_PLANE_RELATIVE_COLORIMETRIC: Tries to preserve the whole Black Channel, even if there are some values in more or all CMYK values. With my Test Profiles it has the following behaviour: C10, M0, Y0, K50 -->> C11, M1, Y0, K53 C10, M20, Y0, K50 -->> C15, M23, Y2, K53 C0, M0, Y0, K50 -->> C0, M0, Y0, K53 I have 2 quick questions: - Will "-sProofProfile=" get also a Parameter for the Intent, or is there the "-sRenderIntent=" Parameter used? - "-sDeviceLinkProfile=" and "-sNamedProfile=" crash everytime in the current Head. So I think it is not finished yet. Am I right here?
Thomas, -sDeviceLinkProfile should work at this time. I will check to see if there is an issue. -sNamedProfile requires customized development work. There is currently an example that is described in the documentation, and can be readily enable. In particular, it was set up to actually make use of non-ICC data bases for dealing with spot colors. How do you see yourself making use of specialized spot color (and DeviceN) color handling? So with the black intent do you think you would want both options, the K_ONLY and K_PLANE options?
Michael, -sDeviceLinkProfile should work at this time. I will check to see if there is an issue. - I rechecked in the moment and it crashes gs. -sNamedProfile requires customized development work. There is currently an example that is described in the documentation, and can be readily enable. In particular, it was set up to actually make use of non-ICC data bases for dealing with spot colors. How do you see yourself making use of specialized spot color (and DeviceN) color handling? - I played around with -sNamedProfile at a very early stage last year and it worked, but I don´t know wich gs device it was. I readed also the "GS9_Color_Management.pdf" and the Remarks in "gsicc_cache.c" but did not find a device where the example files from "./toolbin/color/named_color" are working with current head. I think it is a very nice option, to remap SpotColors to other LAB values. For example giving a Color based on a Corporate Identity, a better look on a printer. Or putting together different SpotColors like "HKS 12 K" and "HKS 12 N" to the same LAB Values. So with the black intent do you think you would want both options, the K_ONLY and K_PLANE options? - I think it would make sense, if both options K_ONLY and K_PLANE would be available. K_PLANE has also the side effect, that the ink overall coverage would be lower while keeping dE low.
Thomas, Yes there was an issue with the DeviceLink stuff. I have fixed it. Could you please give it a try with the head and let me know. I will work on adding in the black preserving intents in the next couple weeks. I will get the named color example cleaned up a bit to make it clearer what one needs to do.
Michael, I checked the "-sDeviceLinkProfile" in the moment. It does not crash with current head. But the data runs just through the Devicelinkprofile when "-sDefaultCMYKProfile" and "-sOutputICCProfile" are different. For example, this does no DeviceLinking: -sDefaultCMYKProfile=myCMYK_A.icc -sOutputICCProfile=myCMYK_A.icc -sDeviceLinkProfile=myCMYK2CMYKLink.icc For example, this does DeviceLinking: -sDefaultCMYKProfile=myCMYK_A.icc -sOutputICCProfile=myCMYK_B.icc -sDeviceLinkProfile=myCMYK2CMYKLink.icc
Thomas, Ah. Good catch. I know what the issue is with this one. I *might* be able to get a fix for this into the 9.05 release. Thanks
Hi Thomas, So I fixed the issue with the Device Link profile. It is in the head and will be in the up coming 9.05 release.
Hi Michael, both, proofing profile and device link profile, work with current head. I tested several combinations today and I think, this is very hot stuff and will bring tons of new ideas around Ghostscript! So, thanks for this great work!
Black point compensation control was added with http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=408cbb83103ba9cf6996eeebaa02995cd9f535ad Currently we have an on/off option for black point compensation since most CMM's offer only that approach. However, the code was written in a way that always easy customization for additional black generation modes. lcms2.x appears to have only one option to me. This above commit provides the ability to set black point compensation on/off based upon object type (graphic, image, and text)
Michael, your Comment 11 implements "Black point compensation control". But this enhancement was about implementing the "Black preserving Rendering Intents" "INTENT_PRESERVE_K_PLANE" and "INTENT_PRESERVE_K_ONLY" from Comment 2. Are you sure, Comment 11 is in the right Report?
Hi Thomas, Ah a misunderstanding. These should be easy to add. I will try to get that next week.
Added finally with http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=f4b2deea2aa129048014771c19ef9fb3c317de7e