At IDR Solutions I spend a lot of time working with PDF as I’m involved in the development of our Java PDF Library and PDF to HTML5 Converter.

I thought that this article would be useful to illustrate the algorithm that is used to shade Free-form meshes in PDF files and how to find the color intensity at any given point in a triangular mesh.

**Case Example** : Find the color intensity of Point P.

This task can be accomplished by applying linear interpolation; In order to find this intensity, the cord points and colors of each vertex points needs to be known in advance. Coordinate points are defined in Bites Per Coordinate values and color vertex points are defined in bits per component values. Please refer to Decode Array to find the number of components that is used to represent the coordination points mapping area and color mapping area; in Decode array these ranges are specified as follows…. [xmin xmax ymin ymax c1,min c1,max … cn,min cn,max]

once the coordinate points and colors of each vertex is known then a horizontal line need to be drawn across point “P”. This line is also referred as “Scan Line”. Coordination points where the scan line intersects in edges AC and AB has to be calculated (this can be accomplished by calculating the distance percentage of each cross section) in order to find the scan intersection point color values.

Once the intersection point colors are known then point “P” color can easily be calculated by calculating the distance of P across the line and mapping it with color deviation.

I Hope you find this information useful.

*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.*