Understanding the PDF file Format – decodeArray

When you create an image in a PDF file it is possible to specify that it is inverted. You do this by using the decodeArray. This consists of 2 values for each colour element – a minimum and a maximum. So for a gray colorspace you might see

decodeArray [0.0 1.0]

while CMYK would have

decodeArray [0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0]

It can also be defined as an 8 bit value ( decodeArray [0 254])

This allows control over the allowable values and out of range values will be set to the minimum or maximum. If you reverse these the image can be inverted (ie decodeArray [1.0 0.0]) which is a neat little trick. You can also do some simple image processing with it.

Where it can get slightly tricky is that you can also apply a decoder Array to a Mask on an image – I’ll leave you to figure this one out…

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!

 

Related Posts:

The following two tabs change content below.

Mark Stephens

System Architect and Lead Developer at IDRSolutions
Mark Stephens has been working with Java and PDF since 1999 and has diversified into HTML5, SVG and JavaFX. He also enjoys speaking at conferences and has been a Speaker at user groups, Business of Software, Seybold and JavaOne conferences. He has a very dry sense of humor and an MA in Medieval History for which he has not yet found a practical use.
Markee174

About Mark Stephens

Mark Stephens has been working with Java and PDF since 1999 and has diversified into HTML5, SVG and JavaFX.

He also enjoys speaking at conferences and has been a Speaker at user groups, Business of Software, Seybold and JavaOne conferences. He has a very dry sense of humor and an MA in Medieval History for which he has not yet found a practical use.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>