Creating color managed PDFs
I have been working on an experimental branch of cairo that supports color management for the image and pdf surfaces. I'm currently trying to get Inkscape to use this API so I can test creating color managed PDF files. I'm not familiar with SVG or the Inkscape source and have some questions.
The SVG specification says that compositing can be performed in sRGB or linear RGB color space. I could not find where this is supported in Inkscape. For now I've set the PDF surface color space to sRGB.
What color space are gradients interpolated in? Are all gradient stops the same color space? In my patch I have assumed that all stops have the same color space and used this color space as the interpolation color space.
Can a color space be set for an image?
If anyone is interested the code is here: http://cgit.freedesktop.org/~ajohnson/
To simplify the implementation only RGB color spaces are currently supported.
On Thu, 2012-07-12 at 00:25 +0930, Adrian Johnson wrote:
I have been working on an experimental branch of cairo that supports color management for the image and pdf surfaces. I'm currently trying to get Inkscape to use this API so I can test creating color managed PDF files. I'm not familiar with SVG or the Inkscape source and have some questions.
The SVG specification says that compositing can be performed in sRGB or linear RGB color space. I could not find where this is supported in Inkscape. For now I've set the PDF surface color space to sRGB.
What color space are gradients interpolated in? Are all gradient stops the same color space? In my patch I have assumed that all stops have the same color space and used this color space as the interpolation color space.
Can a color space be set for an image?
If anyone is interested the code is here: http://cgit.freedesktop.org/~ajohnson/
To simplify the implementation only RGB color spaces are currently supported.
Since no one more knowledgeable had answered: I believe (please correct me if I am wrong) that Inkscape only uses the sRGB color space. This is the default color space for everything in the SVG specification except for filters where linear RGB is the default space. The canned filters in Inkscape set the color space to sRGB so they are rendered the same by browsers, etc. Inkscape fails many of the W3C filter tests because they use the default linear RGB space.
Tav
On Jul 11, 2012, at 7:55 AM, Adrian Johnson wrote:
I have been working on an experimental branch of cairo that supports color management for the image and pdf surfaces. I'm currently trying to get Inkscape to use this API so I can test creating color managed PDF files. I'm not familiar with SVG or the Inkscape source and have some questions.
The SVG specification says that compositing can be performed in sRGB or linear RGB color space. I could not find where this is supported in Inkscape. For now I've set the PDF surface color space to sRGB.
What color space are gradients interpolated in? Are all gradient stops the same color space? In my patch I have assumed that all stops have the same color space and used this color space as the interpolation color space.
Can a color space be set for an image?
If anyone is interested the code is here: http://cgit.freedesktop.org/~ajohnson/
To simplify the implementation only RGB color spaces are currently supported.
Well... we probably have two different areas to consider: display and save/export.
Currently Inkscape works with sRGB for it's rendering and exporting. However, SVG in general allows for arbitrary items to have colors in any specific colorspace, and happily mixes within a single document. And as you mention, SVG itself allows for interpolation in linear RGB, but Inkscape has not supported that yet.
If a color (stroke color, fill color, color on a single stop in a gradient, etc) is more than sRGB it will have the RGB value as fallback and then an icc-color() component that specifies values in a given color profile. So an assumption that all steps in a given gradient may not always be true. I think we would expect at least individual gradients to be consistent, though, even if different gradients in a give work might have different color spaces.
And, yes, individual images can have different color spaces applied.
For common cases, most color managed workflows we see are focused on CMYK or CMYKOG print setups.
A good baseline for checking is to try creating an SVG in Inkscape with at least one CMYK profile attached. Then import that into Scribus (at which point you should check which SVG features Scribus supports so far). Then exporting a color-managed PDF from Scribus should give you a good test case to compare to. Ideally when one has the original color-managed SVG in Inkscape and does an export as PDF, they would get the same result.
Display to screen, on the other hand, can stay flattened to RGB since most display approaches are limited to three colors.
participants (3)
-
Adrian Johnson
-
Jon Cruz
-
Tavmjong Bah