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!
Latest posts by Mark Stephens (see all)
- 4 ways Companies can make remote working successful - December 21, 2017
- My experience of a Turkish bath (visiting Istanbul for DevFest) - November 24, 2017
- My 5 key takeaways from JavaOne 2017 - October 6, 2017
- My notes and pictures from thursday JavaOne 2017 - October 5, 2017
- My notes and pictures from Wednesday JavaOne 2017 - October 5, 2017