I introduced Color in a previous article and there are lots of different types of Colorspaces to suit all occasions. One of the more complex and powerful Colorspaces is the ICC Colorspace which deserves more explanation.
ICCBased colorspace allow the user to include a file in the PDF (a profile) defining the Colorspace values according to standards laid down by the International Color Consortium (ICC). There are several versions of the ICC standard and the level of supported has been updated in PDF version revisions. Here is how it appears inside a PDF file. The ICC profile is in the stream data.
70 0 obj[/ICCBased 91 0 R] 91 0 obj<< /Alternate/DeviceGray /Length 2905 /N 1 /Filter/FlateDecode>> stream
The only problem with ICCBased colorspaces is that not all PDF tools may support the ICCBased so you can specify an Alternate colorspace to use (/DeviceGray in the example above). Using the Alternate colorspace will result in an approximation which is often identical to using the ICCBased value (and it can be a lot faster!).
ICCBased colorspaces can have 1, 3 or 4 components (defined by the N dictionary value. So they often use Gray (1 component), RGB (3 components) or CMYK (4 components). So these are common values for Alternate values.
This combination of power, flexibility and alternatives makes ICCBased colorspaces very useful to use in PDF files. Are you making full use of them?
This post is part of our “Understanding the PDF File Format” series. In each article, we aim to take a specific PDF feature and explain it in simple terms. If you wish to learn more about PDF, we have 13 years worth of PDF knowledge and tips, so click here to visit our series index!
IDRsolutions develop a Java PDF library, a PDF forms to HTML5 converter, a PDF to HTML5 or SVG converter and a Java Image Library that doubles as an ImageIO replacement. On the blog our team post about anything interesting they learn about.