pdf viewer control in asp net c# : Adding images to a pdf document control software system azure windows html console PDF32000_200819-part2335

© 
Adobe Systems Incorporated 2008 – All rights reserved
183
PDF 32000-1:2008
coordinate space, discussed in 8.7.2, "General Properties of Patterns". For shadings used directly with the sh
operator, it is the current user space. 
Shading  types 4 to  7  shall be  defined  by  a stream  containing  descriptive  data  characterizing the shading’s 
gradient fill.  In  these  cases,  the shading dictionary  is also a stream  dictionary and  may  contain any of  the 
standard entries common to all streams (see Table 5). In particular, shall include a Length entry. 
In addition, some  shading dictionaries also include a Function entry whose value shall be a function object 
(dictionary or stream) defining how colours vary  across the area to  be shaded. In  such cases, the  shading 
Table 78 –  Entries Common to All Shading Dictionaries  
Key
Type
Value
ShadingType
integer
(Required) The shading type: 
1
Function-based shading 
2
Axial shading 
3
Radial shading 
4
Free-form Gouraud-shaded triangle mesh 
5
Lattice-form Gouraud-shaded triangle mesh 
Coons patch mesh 
7 Tensor-product patch mesh 
ColorSpace
name or 
array
(Required) The colour space in which colour values shall be
expressed.  This  may  be  any  device,  CIE-based,  or  special  colour 
space except a Pattern space. See 8.7.4.4, "Colour Space: Special 
Considerations" for further information. 
Background
array
(Optional) An array of colour components appropriate to the colour 
space, specifying  a single  background colour value.  If  present,  this 
colour  shall  be  used,  before  any  painting  operation  involving  the 
shading, to fill those portions of the area to be painted that lie outside 
the bounds of the shading object. 
NOTE
In  the  opaque  imaging  model,  the  effect  is  as  if  the 
painting  operation  were  performed  twice:  first  with  the 
background colour and then with the shading. 
NOTE
The background colour is applied only when the shading 
is used as part of a shading pattern, not when it is painted 
directly with the sh operator. 
BBox
rectangle
(Optional) An array of four numbers giving the left, bottom, right, and 
top  coordinates,  respectively,  of  the  shading’s  bounding  box.  The 
coordinates  shall  be  interpreted  in  the  shading’s  target  coordinate 
space. If present, this bounding box shall be applied as a temporary 
clipping  boundary  when  the  shading  is  painted,  in  addition  to  the 
current clipping path and any other clipping boundaries in effect at that 
time. 
AntiAlias
boolean
(Optional) A flag indicating whether to filter the shading function to 
prevent aliasing artifacts. 
NOTE
The shading operators sample shading functions at a rate 
determined  by  the  resolution  of  the  output  device. 
Aliasing can occur if the function is not smooth—that is, if 
it has  a  high spatial  frequency  relative to the  sampling 
rate. Anti-aliasing can be computationally expensive and 
is usually unnecessary, since most shading functions are 
smooth  enough  or  are  sampled  at  a  high  enough 
frequency to avoid aliasing effects. Anti-aliasing may not 
be implemented on some output devices, in which case 
this flag is ignored. 
Default value: false
Adding images to a pdf document - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
pdf insert image; add jpg signature to pdf
Adding images to a pdf document - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add image to pdf acrobat; how to add an image to a pdf file
PDF 32000-1:2008
184
© 
Adobe Systems Incorporated 2008 – All rights reserved
dictionary usually defines the geometry of the shading, and the function defines the colour transitions across 
that  geometry.  The  function  is  required  for  some  types  of  shading  and  optional  for  others.  Functions  are 
described in detail in 7.10, "Functions". 
NOTE 3
Discontinuous colour transitions, or those with high spatial frequency, may exhibit aliasing effects when painted 
at low effective resolutions. 
8.7.4.4
Colour Space: Special Considerations
8.7.4.4.1 General
Conceptually, a shading determines a colour value for each individual point within the area to be painted. In 
practice,  however, the shading may actually  be  used to compute colour values  only for some subset of  the 
points  in the target area, with the  colours  of the intervening points determined by interpolation between  the 
ones computed. Conforming readers  are free  to use  this strategy  as long  as the interpolated colour  values 
approximate those defined by the shading to within the smoothness tolerance specified in the graphics state 
(see  10.6.3, "Smoothness  Tolerance"). The ColorSpace entry  common  to  all  shading  dictionaries not  only 
defines the colour space in which the shading specifies its colour values but also determines the colour space 
in which colour interpolation is performed. 
NOTE 1
Some types of shading (4 to 7) perform interpolation on a parametric value supplied as input to the shading’s 
colour function, as described in the relevant sub-clause. This form of interpolation is conceptually distinct from 
the interpolation described here, which operates on the output colour values produced by the colour function 
and takes place within the shading’s target colour space. 
Gradient fills between colours defined by most shadings may be implemented using a variety of interpolation 
algorithms, and these algorithms may be sensitive to the characteristics of the colour space. 
NOTE 2
Linear interpolation, for example, may have observably different results when applied in a DeviceCMYK colour 
space than  in a Lab colour space, even if  the  starting and ending  colours  are perceptually identical. The 
difference arises because the two colour spaces are not linear relative to each other.
Shadings shall be rendered according to the following rules: 
If ColorSpace is a device colour space different from the native colour space of the output device, colour 
values in the shading shall be converted to the native colour space using the standard conversion formulas 
described  in  10.3,  "Conversions  among  Device  Colour  Spaces".  To  optimize  performance,  these 
conversions  may  take  place  at  any  time  (before  or  after  any  interpolation  on  the  colour  values  in  the 
shading). Thus, shadings defined with device colour spaces may have colour gradient fills that are less 
accurate  and somewhat device-dependent. (This does  not  apply  to axial and  radial  shadings—shading 
types 2  and 3—because those shading types perform gradient  fill calculations on a single variable and 
then convert to parametric colours.) 
If ColorSpace is a CIE-based colour space, all gradient fill calculations shall be performed in that space. 
Conversion  to  device colours  shall  occur only  after  all  interpolation calculations  have been  performed. 
Thus, the colour gradients are device-independent for the colours generated at each point. 
If ColorSpace  is  a Separation  or DeviceN  colour  space,  a  colour  conversion (to  the  alternate  colour 
space) occurs only if one or more of the specified colorants is not supported by the device. In that case, 
gradient fill calculations shall be performed in the designated Separation or DeviceN colour space before 
conversion to the alternate space. Thus, nonlinear tint transformation functions shall be accommodated for 
the best possible representation of the shading. 
If ColorSpace is an Indexed  colour space, all colour values specified in the shading shall be immediately 
converted  to the base  colour space.  Depending  on  whether  the  base colour  space is a device or CIE-
based space, gradient fill calculations shall be performed as stated above. Interpolation shall never occur 
in an Indexed  colour space, which is quantized and therefore inappropriate for calculations that assume a 
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references: RasterEdge.Imaging.Basic.dll. RasterEdge.Imaging.Basic.Codec.dll.
add multiple jpg to pdf; how to add an image to a pdf file in acrobat
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Feel free to define text or images on PDF document and extract accordingly. Capable of adding PDF file navigation features to your VB.NET program.
adding a jpeg to a pdf; add picture to pdf in preview
© 
Adobe Systems Incorporated 2008 – All rights reserved
185
PDF 32000-1:2008
continuous  range  of  colours.  For  similar  reasons,  an Indexed   colour  space  shall  not  be  used  in  any 
shading whose colour values are generated by a function; this rule applies to any shading dictionary that 
contains a Function entry. 
8.7.4.5 Shading Types
8.7.4.5.1 General
In addition to the entries listed in Table 78, all shading dictionaries have entries specific to the type of shading 
they represent, as indicated by the value of their ShadingType entry. The following sub-clauses describe the 
available shading types and the dictionary entries specific to each. 
8.7.4.5.2 Type 1 (Function-Based) Shadings
In  Type  1  (function-based)  shadings,  the  colour  at  every  point  in  the  domain  is  defined  by  a  specified 
mathematical function. The function need not be smooth or continuous. This type is the most general of the 
available shading types and is useful for shadings that cannot be adequately described with any of the other 
types.  Table 79  shows  the  shading  dictionary  entries  specific  to  this  type  of  shading,  in  addition  to  those 
common to all shading dictionaries (see Table 78).
This type of shading shall not be used with an Indexed  colour space. 
The domain rectangle (Domain) establishes an internal coordinate space for the shading that is independent of 
the target coordinate space in which it shall be painted. The colour function(s) (Function) specify the colour of 
the  shading at  each  point  within  this  domain  rectangle.  The  transformation  matrix  (Matrix)  then  maps  the 
domain rectangle into a corresponding rectangle or parallelogram in the target coordinate space. Points within 
the shading’s bounding box (BBox) that fall outside this transformed domain rectangle shall be painted with the 
shading’s background colour (Background); if the shading dictionary has no Background entry, such points 
shall be left unpainted. If the function is undefined at any point within the declared domain rectangle, an error 
may occur, even if the corresponding transformed point falls outside the shading’s bounding box. 
8.7.4.5.3 Type 2 (Axial) Shadings
Type 2 (axial) shadings define a colour blend that varies along a linear axis between two endpoints and extends 
indefinitely perpendicular to that axis. The shading may optionally be extended beyond either or both endpoints 
Table 79 –  Additional Entries Specific to a Type 1 Shading Dictionary  
Key
Type
Value
Domain
array
(Optional) An array of four numbers [ x
min
x
max
y
min
y
max
] specifying 
the rectangular domain of coordinates over which the colour function(s) 
are defined. Default value: [ 0.0  1.0   0.0  1.0 ]. 
Matrix
array
(Optional) An array of six numbers specifying a transformation matrix 
mapping  the coordinate space  specified by the Domain entry into  the 
shading’s target coordinate space. 
NOTE
To map the domain rectangle [ 0.0  1.0   0.0  1.0 ] to a 1-inch 
square  with  lower-left  corner at  coordinates  (100,  100)  in 
default  user  space,  the Matrix  value  would  be 
[ 72  0  0  72  100  100 ]. 
Default value: the identity matrix [ 1  0  0  1  0  0 ]. 
Function
function
(Required) A 2-in, n-out function or an array of n 2-in, 1-out functions 
(where n is the number of colour components in the shading dictionary’s 
colour space). Each function’s domain shall be a superset of that of the 
shading dictionary. If the value returned by the function for a given colour 
component is out of range, it shall be adjusted to the nearest valid value. 
C# PDF insert text Library: insert text into PDF content in C#.net
Library. Best and multifunctional Visual Studio .NET PDF SDK supports adding and inserting text content to adobe PDF document in C#.
adding image to pdf; add an image to a pdf with acrobat
C# PDF Page Insert Library: insert pages into PDF file in C#.net
This C# .NET PDF document page inserting & adding component from RasterEdge is written in managed C# code and designed particularly for .NET class applications
add a picture to a pdf document; add an image to a pdf acrobat
PDF 32000-1:2008
186
© 
Adobe Systems Incorporated 2008 – All rights reserved
by continuing the boundary colours indefinitely. Table 80 shows the shading dictionary entries specific to this 
type of shading, in addition to those common to all shading dictionaries (see Table 78). 
This type of shading shall not be used with an Indexed  colour space. 
The  colour  blend  shall  be  accomplished  by  linearly  mapping  each  point  (x, y)  along  the  axis  between  the 
endpoints (x
0
y
0
) and (x
1
y
1
) to a  corresponding point  in  the domain specified by the  shading  dictionary’s 
Domain entry. The points (0, 0) and (1, 0) in the domain correspond respectively to (x
0
y
0
) and (x
1
y
1
) on the 
axis. Since all points along a line in domain space perpendicular to the line from (0, 0) to (1, 0) have the same 
colour, only the new value of x needs to be computed: 
The value of the parametric variable t is then determined from x ¢ as follows: 
For 0 £ x ¢ £ 1, t = t
0
+ (t
1
t
) ¥ x ¢. 
For x ¢ < 0, if the first element of the Extend array is true , then t = t
0
; otherwise, t is undefined and the 
point shall be left unpainted. 
For x ¢ > 1, if the second element of the Extend array is true , then t = t
1
; otherwise, t is undefined and the 
point shall be left unpainted. 
The resulting value of t shall be passed as input to the function(s) defined by the shading dictionary’s Function
entry, yielding the component values of the colour with which to paint the point (x, y). 
NOTE
Figure L.10 in Annex L shows three examples of the use of an axial shading to fill a rectangle and display text. 
The area to be filled extends beyond the shading’s bounding box. The shading is the same in all three cases, 
except for the values of the Background and Extend entries in the shading dictionary. In the first example, the 
shading is not extended at either end and no background colour is specified; therefore, the shading is clipped 
to  its  bounding  box  at both ends. The  second  example  still  has  no  background  colour  specified, but  the 
shading is extended at both ends; the result is to fill the remaining portions of the filled area with the colours 
Table 80 –  Additional Entries Specific to a Type 2 Shading Dictionary  
Key
Type
Value
Coords
array
(Required) An array of four numbers [ x
0
y
0
x
1
y
] specifying the starting 
and  ending coordinates  of  the  axis, expressed in the shading’s  target 
coordinate space. 
Domain
array
(Optional) An array of two numbers [ t
0
t
1
] specifying the limiting values of 
 parametric  variable t.  The  variable  is  considered  to  vary  linearly 
between  these  two  values  as  the  colour  gradient  varies  between  the 
starting and ending points of the axis. The variable t becomes the input 
argument to the colour function(s). Default value: [ 0.0  1.0 ]. 
Function
function
(Required) A 1-in, n-out function or an array of n 1-in, 1-out functions 
(where n is the number of colour components in the shading dictionary’s 
colour  space).  The  function(s)  shall  be  called  with  values  of  the 
parametric variable t in the domain defined by the Domain entry. Each 
function’s domain shall be a superset of that of the shading dictionary. If 
the value returned by the function for a given colour component is out of 
range, it shall be adjusted to the nearest valid value. 
Extend
array
(Optional) An array of two boolean values specifying whether to extend 
the  shading  beyond  the  starting  and  ending  points  of  the  axis, 
respectively. Default value: [ false false ]. 
x
x
1
x
0
( –
)
x x
0
( –
)
×
y
1
y
0
( –
)
y y
0
( –
)
×
+
x
1
x
0
( –
)
2
y
1
y
0
( –
)
2
+
-------------------------------------------------------------------------------------------------------
=
VB.NET Image: How to Draw Annotation on Doc Images with Image SDK
other image annotating tutorials besides adding annotation using PDF document, image to pdf files and converting, compressing and stroing images, documents and
add picture to pdf; add image to pdf preview
C# PDF Library SDK to view, edit, convert, process PDF file for C#
protecting PDF file by adding password and digital signatures with C# sample code in .NET Class. Feel free to define text or images on PDF document and extract
add image pdf acrobat; how to add picture to pdf
© 
Adobe Systems Incorporated 2008 – All rights reserved
187
PDF 32000-1:2008
defined  at  the  ends  of  the  shading.  In  the  third  example,  the  shading  is  extended  at  both  ends  and  a 
background colour is specified; therefore, the background colour is used for the portions of the filled area 
beyond the ends of the shading. 
8.7.4.5.4 Type 3 (Radial) Shadings
Type  3  (radial)  shadings  define  a  colour  blend  that  varies  between  two  circles.  Shadings  of  this  type  are 
commonly used to depict three-dimensional spheres and cones. Shading dictionaries for this type of shading 
contain the entries shown in Table 81, as well as those common to all shading dictionaries (see Table 78). 
This type of shading shall not be used with an Indexed  colour space. 
The colour blend is based on a family of blend circles interpolated between the starting and ending circles that 
shall be  defined  by the shading dictionary’s Coords entry. The blend circles  shall  be  defined in  terms  of a 
subsidiary parametric variable 
which varies linearly between 0.0 and 1.0 as t varies  across  the  domain  from t
0
to t
1
, as  specified by  the 
dictionary’s Domain entry. The centre and radius of each blend circle shall be given by the following parametric 
equations: 
Each value  of s between 0.0 and 1.0  determines a corresponding value  of t, which  is  passed as  the  input 
argument to  the function(s) defined  by  the  shading dictionary’s Function  entry.  This  yields the  component 
values of the colour with which to fill the corresponding blend circle. For values of s not lying between 0.0 and 
Table 81 –  Additional Entries Specific to a Type 3 Shading Dictionary  
Key
Type
Value
Coords
array
(Required) An array of six numbers [ x
0
y
0
r
0
x
1
y
1
r
1
 specifying  the 
centres  and  radii  of  the  starting  and  ending  circles,  expressed  in  the 
shading’s  target  coordinate  space.  The  radii r
0
and r
1
shall  both  be 
greater than or equal to 0. If one radius is 0, the corresponding circle shall 
be treated as a point; if both are 0, nothing shall be painted. 
Domain
array
(Optional) An array of two numbers [ t
0
t
1
] specifying the limiting values of 
 parametric  variable t.  The  variable  is  considered  to  vary  linearly 
between  these  two  values  as  the  colour  gradient  varies  between  the 
starting and ending circles. The variable t becomes the input argument to 
the colour function(s). Default value: [ 0.0  1.0 ]. 
Function
function
(Required) A 1-in, n-out function or an array of n 1-in, 1-out functions 
(where n is the number of colour components in the shading dictionary’s 
colour  space).  The  function(s)  shall  be  called  with  values  of  the 
parametric variable t in the domain defined by the shading dictionary’s 
Domain entry. Each function’s domain shall be a superset of that of the 
shading dictionary. If the value returned by the function for a given colour 
component is out of range, it shall be adjusted to the nearest valid value. 
Extend
array
(Optional) An array of two boolean values specifying whether to extend 
the shading beyond the starting and ending circles, respectively. Default 
value: [ false false ]. 
s
t t
0
t
1
t
0
--------------
=
x
c
(s )
x
0
s
x
1
x
0
( –
)
+ ×
=
y
c
(s )
y
0
s
y
1
y
0
( –
)
+ ×
=
r(s )
r
0
s
r
1
r
0
( –
)
+ ×
=
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
page, you will find detailed guidance on creating, loading, merge and splitting PDF pages and Files, adding a page into PDF document, deleting unnecessary page
add image field to pdf form; add a picture to a pdf
VB.NET PDF insert text library: insert text into PDF content in vb
Multifunctional Visual Studio .NET PDF SDK library supports adding text content to adobe PDF document in VB.NET WinForms and ASP.NET.
adding image to pdf in preview; add image to pdf file
PDF 32000-1:2008
188
© 
Adobe Systems Incorporated 2008 – All rights reserved
1.0, the boolean elements of the shading dictionary’s Extend array determine whether and how the shading is 
extended. If the first of the two elements is true , the shading shall be extended beyond the defined starting 
circle to values of s less than 0.0; if the second element is true , the shading shall be extended beyond the 
defined ending circle to s values greater than 1.0. 
NOTE 1
Either of the starting and ending circles may be larger than the other. If the shading is extended at the smaller 
end, the family of blend circles continues as far as that value of s for which the radius of the blend circle 
r (s) = 0. If the shading is extended at the larger end, the blend circles continue as far as that s value for which 
r (s) is large enough to encompass the shading’s entire bounding box (BBox). Extending the shading can thus 
cause painting to extend beyond the areas defined by the two circles themselves. The two examples in the 
rightmost column of Figure L.11 in Annex L depict the results of extending the shading at the smaller and larger 
ends, respectively. 
Conceptually, all of the blend circles shall be painted in order of increasing values of s, from smallest to largest. 
Blend circles extending beyond the starting circle shall be painted in the same colour defined by the shading 
dictionary’s Function entry for  the starting circle (t = t
0
s = 0.0). Blend  circles  extending beyond the ending 
circle shall be painted in the colour defined for the ending circle (t = t
1
s = 1.0). The painting is opaque, with 
the colour of each circle completely overlaying those preceding it. Therefore, if a point lies within more than one 
blend circle, its final colour shall be that of the last of the enclosing circles to be painted, corresponding to the 
greatest value of s
NOTE 2
If one of the starting and ending circles entirely contains the other, the shading depicts a sphere, as in Figure 
L.12 and Figure L.13 in Annex L. In Figure L.12 in Annex L, the inner circle has zero radius; it is the starting 
circle in the figure on the left and the ending circle in the figure on the right. Neither shading is extended at 
either the smaller or larger end. In Figure L.13
in Annex L, the inner circle in both figures has a nonzero radius 
and the shading is extended at the larger end. In each plate, a background colour is specified for the figure on 
the right but not for the figure on the left. 
NOTE 3
If neither circle contains the other, the shading depicts a cone. If the starting circle is larger, the cone appears 
to point out of the page. If the ending circle is larger, the cone appears to point into the page (see Figure L.11 in 
Annex L
). 
EXAMPLE 1
This example paints the leaf-covered branch shown in Figure L.14 in Annex L. Each leaf is filled with the 
same radial shading (object number 5). The colour function (object 10) is a stitching function (described in 
7.10.4, "Type 3 (Stitching) Functions") whose two subfunctions (objects 11 and 12) are both exponential 
interpolation functions (see 7.10.3, "Type 2 (Exponential Interpolation) Functions"). 
 0  obj
% Shading dictionary
<<   /ShadingType  3
/ColorSpace  /DeviceCMYK
/Coords  [ 0.0  0.0  0.096  0.0  0.0  1.0 00]
% Concentric circles
/Function  10 0 R
/Extend  [ true  true ]
>>
endobj
10  0  obj
%Colour function
<<   /FunctionType  3
/Domain  [ 0.0  1.0 ]
/Functions  [ 11 0 R  12 0 R ]
/Bounds  [ 0.708 ]
/Encode  [ 1.0  0.0  0.0  1.0 ]
>>
endobj
11  0  obj
% First subfunction
<<   /FunctionType  2
/Domain  [ 0.0  1.0 ]
/C0  [ 0.929  0.357  1.000  0.298 ]
/C1  [ 0.631  0.278  1.000  0.027 ]
/N  1.048
>>
endobj
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
C#.NET: Add Text Box to PDF Document. Provide users with examples for adding text box to PDF and edit font size and color in text box field in C#.NET program.
how to add image to pdf in preview; adding image to pdf file
© 
Adobe Systems Incorporated 2008 – All rights reserved
189
PDF 32000-1:2008
12  0  obj
% Second subfunction
<<   /FunctionType  2
/Domain  [ 0.0  1.0 ]
/C0  [ 0.929  0.357  1.000  0.298 ]
/C1  [ 0.941  0.400  1.000  0.102 ]
/N  1.374
>>
endobj
EXAMPLE 2
This example shows how each leaf shown in Figure L.14 in Annex L is drawn as a path and then filled 
with the shading (where the name Sh1 is associated with object 5 by the Shading subdictionary of the 
current resource dictionary; see 7.8.3, "Resource Dictionaries").
316.789  140.311  m
% Move to start of leaf
303.222  146.388  282.966  136.518  279.122  121.983  c
% Curved segment
277.322  120.182  l
% Straight line
285.125  122.688  291.441  121.716  298.156  119.386  c
% Curved segment
336.448  119.386  l
% Straight line
331.072  128.643  323.346  137.376  316.789  140.311  c
% Curved segment
 n
% Set clipping path
q
% Save graphics state
27.7843  0.0000  0.0000  -27.7843  310.2461  121.1521  cm
% Set matrix
/Sh1  sh
% Paint shading
Q
% Restore graphics state
8.7.4.5.5 Type 4 Shadings (Free-Form Gouraud-Shaded Triangle Meshes)
Type  4  shadings  (free-form  Gouraud-shaded  triangle  meshes)  are  commonly  used  to  represent  complex 
coloured and shaded three-dimensional shapes. The area to be shaded is defined by a path composed entirely 
of  triangles.  The  colour  at  each  vertex  of  the  triangles  is  specified,  and  a  technique  known  as Gouraud 
interpolation is used to colour the interiors. The interpolation functions defining the shading may be linear or 
nonlinear. Table 82 shows the entries specific to this type of shading dictionary, in addition to those common to 
all shading dictionaries (see Table 78) and stream dictionaries (see Table 5). 
Table 82 –  Additional Entries Specific to a Type 4 Shading Dictionary  
Key
Type
Value
BitsPerCoordinate
integer
(Required) The number of bits used to represent each vertex 
coordinate. The value shall be 1, 2, 4, 8, 12, 16, 24, or 32. 
BitsPerComponent
integer
(Required) The number of bits used to represent each colour 
component. The value shall be 1, 2, 4, 8, 12, or 16. 
BitsPerFlag
integer
(Required) The number of bits used to represent the edge flag for 
each vertex (see below). The value of BitsPerFlag shall be 2, 4, or
8, but only the least significant 2 bits in each flag value shall be
used. The value for the edge flag shall be 0, 1, or 2. 
Decode
array
(Required) An array of numbers specifying how to map vertex 
coordinates and colour components into the appropriate ranges of 
values.  The  decoding  method  is  similar  to  that  used  in  image 
dictionaries (see 8.9.5.2,  "Decode  Arrays").  The ranges shall  be
specified as follows: 
[ x
min
x
max
y
min
y
max
c
1,min
c
1,max
… c
n,min
c
n,max
]
Only one pair of c values shall be specified if a Function entry is 
present. 
PDF 32000-1:2008
190
© 
Adobe Systems Incorporated 2008 – All rights reserved
Unlike shading types 1 to 3, types 4 to 7 shall be represented as streams. Each stream contains a sequence of 
vertex coordinates and colour data that defines the triangle mesh. In a type 4 shading, each vertex is specified 
by the following values, in the order shown: 
f  x  y  c
1
… c
n
where 
f is the vertex’s edge flag (discussed below) 
x and y are its horizontal and vertical coordinates 
c
1
… c
n
are its colour components 
All vertex coordinates shall be expressed in the  shading’s target coordinate space. If the shading dictionary 
includes a Function entry, only a single parametric value, t, shall be specified for each vertex in place of the 
colour components c
1
… c
n
The edge flag associated with each vertex determines the way it connects to the other vertices of the triangle 
mesh. A vertex v
a
with an edge flag value f
a
= 0 begins a new triangle, unconnected to any other. At least two 
more vertices (v
b
and v
) shall be provided, but their edge flags shall be ignored. These three vertices define a 
triangle (v
a
v
b 
v
c 
), as shown in Figure 24. 
Figure 24 –  Starting a New Triangle in a Free-form Gouraud-shaded Triangle Mesh
Function
function
(Optional) A 1-in, n-out function or an array of n 1-in, 1-out functions 
(where n  is  the  number  of  colour  components  in  the  shading 
dictionary’s colour space). If this entry is present, the colour data for 
each vertex shall be specified by a single parametric variable rather 
than by n separate colour components. The designated function(s) 
shall  be  called  with  each  interpolated  value  of  the  parametric 
variable to determine the actual colour at each point. Each input 
value  shall  be  forced  into  the  range  interval  specified  for  the 
corresponding  colour  component  in  the  shading  dictionary’s 
Decode array. Each function’s domain shall be a superset of that 
interval.  If  the  value  returned  by  the  function  for  a given  colour 
component is out of range, it shall be adjusted to the nearest valid 
value. 
This entry shall not be used with an Indexed  colour space. 
Table 82 –  Additional Entries Specific to a Type 4 Shading Dictionary (continued)
Key
Type
Value
f
a
=0
(Start new triangle)
Previous
triangle
v
a
v
c
v
b
© 
Adobe Systems Incorporated 2008 – All rights reserved
191
PDF 32000-1:2008
Subsequent triangles  shall be defined  by a single  new  vertex  combined with two  vertices of  the  preceding 
triangle. Given triangle (v
a
v
b 
v
c 
), where vertex v
a
precedes vertex v
b
in the data stream and v
b
precedes v
c
a new vertex v
d
can form a new triangle on side v
bc
or side v
ac
, as shown in Figure 25. (Side v
ab
is assumed to 
be shared with a preceding triangle and therefore is not available for continuing the mesh.) If the edge flag is 
f
d
= 1 (side v
bc 
), the next  vertex forms the  triangle (v
b
v
c
v
d
); if the  edge  flag is f
d
= 2 (side v
ac
),  the next 
vertex forms the triangle (v
a
v
c
v
d
). An edge flag of f
d
= 0 starts a new triangle, as described above. 
Figure 25 –  Connecting Triangles in a Free-form Gouraud-shaded Triangle Mesh
Complex shapes can be created by using the edge flags to control the edge on which subsequent triangles are 
formed. 
EXAMPLE
Figure 26 shows two simple examples. Mesh 1 begins with triangle 1 and uses the following edge flags to 
draw each succeeding triangle: 
Mesh 2 again begins with triangle 1 and uses the following edge flags: 
The stream shall provide vertex data for a whole number of triangles with appropriate edge flags; otherwise, an 
error occurs. 
Three new 
vertices
v
d
v
f
v
e
f
d
=0
f
d
=1
v
a
v
c
v
b
One new
vertex
v
d
v
a
v
c
v
b
f
d
=2
One new
vertex
v
d
v
a
v
c
v
b
1 f
a
f
b
f
c
0
=
=
=
(
)
7 f
i
2
( =
)
2 f
d
1
( =
)
8 f
j
2
( =
)
3 f
e
1
( =
)
9 f
k
2
( =
)
4 f
f
1
( =
)
10 f
l
1
( =
)
5 f
g
1
( =
)
11 f
m
1
=
(
)
6 f
h
1
( =
)
1 f
a
f
b
f
c
0
=
=
=
(
)
4 f
f
2
( =
)
2 f
d
1
( =
)
5 f
g
2
( =
)
3 f
e
2
( =
)
6 f
h
2
( =
)
PDF 32000-1:2008
192
© 
Adobe Systems Incorporated 2008 – All rights reserved
Figure 26 –  Varying the Value of the Edge Flag to Create Different Shapes
The data for each vertex consists of the following items, reading in sequence from higher-order to lower-order 
bit positions: 
An edge flag, expressed in BitsPerFlag bits 
A pair of horizontal and vertical coordinates, expressed in BitsPerCoordinate bits each 
A  set of n  colour  components  (where n  is  the  number  of components  in  the shading’s  colour  space), 
expressed in BitsPerComponent bits each, in the order expected by the sc operator 
Each set of vertex data shall occupy a whole number of bytes. If the total number of bits required is not divisible 
by  8,  the last  data  byte  for  each  vertex  is  padded  at  the  end  with  extra  bits,  which  shall  be  ignored.  The 
coordinates and colour values shall be decoded according to the Decode array in the same way as in an image 
dictionary (see 8.9.5.2, "Decode Arrays"). 
If the  shading  dictionary contains a Function  entry,  the colour data for each  vertex shall be specified by  a 
single parametric value t rather than by n separate colour components. All linear interpolation within the triangle 
mesh  shall  be  done  using  the t  values.  After  interpolation,  the  results  shall  be  passed  to  the  function(s) 
specified in the Function entry to determine the colour at each point. 
8.7.4.5.6 Type 5 Shadings (Lattice-Form Gouraud-Shaded Triangle Meshes)
Type 5 shadings (lattice-form Gouraud-shaded triangle meshes) are similar to type 4, but instead of using free-
form geometry, their vertices are arranged in a pseudorectangular lattice, which is topologically equivalent to a 
rectangular grid. The vertices are organized into rows, which need not be geometrically linear (see Figure 27). 
Figure 27 –  Lattice-form Triangle Meshes
Mesh 1
Mesh 2
v
l
v
j
v
i
v
f
v
e
v
c
v
a
v
e
v
g
v
a
v
h
v
c
v
d
v
k
v
b
v
h
v
g
v
d
v
m
v
v
b
v
v
d
v
v
a
v
f
v
b
1
4
5
3
6
2
5
8
9
7
4
3
1
10
11
2
6
Ideal lattice
(i, j)
(i, j+1)
(i+1, j)
(i+1, j+1)
Pseudorectangular lattice
Documents you may be interested
Documents you may be interested