pdf viewer control in asp net c# : Add jpg to pdf file Library software component .net winforms asp.net mvc PDF32000_200821-part2338

© 
Adobe Systems Incorporated 2008 – All rights reserved
203
PDF 32000-1:2008
8.9 Images
8.9.1
General
PDF’s painting operators include general facilities for dealing with sampled images. A sampled image (or just 
image for short) is a rectangular array of  sample  values, each representing a colour. The image may 
approximate the appearance of some natural scene obtained through an input scanner or a video camera, or it 
may be generated synthetically. 
Figure 33 –  Typical Sampled Image
NOTE 1
An image is defined by a sequence of samples obtained by scanning the image array in row or column order. 
Each sample in the array consists of as many colour components as are needed for the colour space in which 
they  are  specified—for  example,  one  component  for DeviceGray,  three  for DeviceRGB,  four  for 
DeviceCMYK, or whatever number is required by a particular DeviceN space. Each component is a 1-, 2-, 4-, 
8-, or (PDF 1.5) 16-bit integer, permitting the representation of 2, 4, 16, 256, or (PDF 1.5) 65536 distinct values 
for each component. Other component sizes can be accommodated when a JPXDecode filter is used; see 
7.4.9, "JPXDecode Filter". 
NOTE 2
PDF provides two means for specifying images: 
An image XObject (described in 8.9.5, "Image Dictionaries") is a stream object whose  dictionary specifies 
attributes of the image and whose data contains the image samples. Like all external objects, it is painted on 
the page by invoking the Do operator in a content stream (see 8.8, "External Objects"). Image XObjects have 
other  uses  as  well,  such  as  for  alternate  images  (see  8.9.5.4,  "Alternate  Images"),  image  masks  (8.9.6, 
"Masked Images"), and thumbnail images (12.3.4, "Thumbnail Images"). 
An inline image  is a small image that is completely defined—both attributes and data—directly inline within a 
content stream. The kinds of images that can be represented in this way are limited; see 8.9.7, "Inline Images"
for details. 
8.9.2
Image Parameters
The properties of an image—resolution, orientation, scanning order, and so forth—are entirely independent of 
the  characteristics  of  the  raster output device  on  which  the  image  is  to be  rendered.  A conforming  reader 
usually renders images by a sampling technique that attempts to approximate the colour values of the source 
as accurately as possible. The actual accuracy achieved depends on the resolution and other properties of the 
output device. 
To paint an image, four interrelated items shall be specified: 
The  format  of  the  image:  number  of  columns  (width),  number  of  rows  (height),  number  of  colour 
components per sample, and number of bits per colour component 
The sample data constituting the image’s visual content 
Add jpg to pdf file - 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
add jpg to pdf acrobat; how to add image to pdf in preview
Add jpg to pdf file - 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 an image to a pdf form; how to add photo to pdf in preview
PDF 32000-1:2008
204
© 
Adobe Systems Incorporated 2008 – All rights reserved
The correspondence between coordinates in user space and those in the image’s own internal coordinate 
space, defining the region of user space that will receive the image 
The mapping from colour component values in the image data to component values in the image’s colour 
space 
All of these items shall be specified explicitly or implicitly by an image XObject or an inline image. 
NOTE
For convenience, the following sub-clauses refer consistently to the object defining an image as an image 
dictionary. Although this term properly refers only to the dictionary portion of the stream object representing an 
image XObject, it should be understood to apply equally to the stream’s data portion or to the parameters and 
data of an inline image. 
8.9.3
Sample Representation
The source format for an image shall be described by four parameters: 
The width of the image in samples 
The height of the image in samples 
The number of colour components per sample 
The number of bits per colour component 
The image dictionary shall specify the width, height, and number of bits per component explicitly. The number 
of colour components shall be inferred from the colour space specified in the dictionary. 
NOTE
For images using the JPXDecode filter (see 7.4.9, "JPXDecode Filter"), the number of bits per component is 
determined from the image data and not specified in the image dictionary. The colour space may or may not be 
specified in the dictionary.
Sample data shall be represented as a stream of bytes, interpreted as 8-bit unsigned integers in the range 0 to 
255. The bytes constitute a continuous bit stream, with the high-order bit of each byte first. This bit stream, in 
turn, is divided into units of n bits each, where n is the number of bits per component. Each unit encodes a 
colour component value, given with high-order bit first; units of 16 bits shall be given with the most significant 
byte  first.  Byte  boundaries  shall  be  ignored,  except  that  each  row  of  sample  data  shall  begin  on  a  byte 
boundary. If the number of data bits per row is not a multiple of 8, the end of the row is padded with extra bits to 
fill out the last byte. A conforming reader shall ignore these padding bits. 
Each n-bit unit within the bit stream shall be interpreted as an unsigned integer in the range 0 to 2n- 1, with the 
high-order  bit  first.  The  image  dictionary’s Decode  entry  maps  this  integer  to  a  colour  component  value, 
equivalent  to  what  could  be  used  with  colour  operators  such  as sc  or g.  Colour  components  shall  be 
interleaved  sample  by  sample;  for  example,  in  a  three-component RGB  image,  the  red,  green,  and  blue 
components for one sample are followed by the red, green, and blue components for the next. 
If  the  image  dictionary's ImageMask   entry  is false   or  absent,  the  colour  samples  in  an  image  shall  be 
interpreted according to the colour space specified in the image dictionary (see 8.6, "Colour Spaces"), without 
reference to the colour parameters in the graphics state. However, if the image dictionary’s ImageMask  entry is 
true, the sample data shall be interpreted as a stencil mask for applying the graphics state’s nonstroking colour 
parameters (see 8.9.6.2, "Stencil Masking"). 
8.9.4
Image Coordinate System
Each image has its own internal coordinate system, or image space . The image occupies a rectangle in image 
space w units wide and h units high, where w and h are the width and height of the image in samples. Each 
sample occupies one  square unit. The  coordinate origin (0, 0)  is at the upper-left  corner  of the image, with 
coordinates ranging from 0 to w horizontally and 0 to h vertically. 
VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
Add necessary references page As PDFPage = doc.GetPage(0) ' Convert the first PDF page to page.ConvertToImage(ImageType.JPEG, Program.RootPath + "\\Output.jpg").
add image to pdf reader; add jpg signature to pdf
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
example, this C#.NET PDF to JPEG converter library will name the converted JPEG image file Output.jpg. Convert PDF to JPEG Using C#.NET. Add necessary references
adding images to a pdf document; adding an image to a pdf
© 
Adobe Systems Incorporated 2008 – All rights reserved
205
PDF 32000-1:2008
The image’s sample data is ordered by row, with the horizontal coordinate varying most rapidly. This is shown 
in Figure 34, where the numbers inside the squares indicate the order of the samples, counting from 0. The 
upper-left corner of the first sample is at coordinates (0, 0), the second at (1, 0), and so on through the last 
sample of the first row, whose upper-left corner is at (w - 1, 0) and whose upper-right corner is at (w, 0). The 
next samples  after  that are  at coordinates  (0, 1),  (1, 1), and so  on to the final sample of  the  image, whose 
upper-left corner is at (w - 1, h - 1) and whose lower-right corner is at (wh). 
NOTE
The image coordinate system and scanning order imposed by PDF do not preclude using different conventions 
in the  actual image.  Coordinate  transformations  can  be  used to  map  from other  conventions to  the PDF 
convention. 
The correspondence between image space and user space is constant: the unit square of user space, bounded 
by user coordinates (0, 0) and (1, 1), corresponds to the boundary of the image in image space (see Figure 
35).  Following  the  normal  convention  for  user space,  the  coordinate (0, 0)  is  at the lower-left corner of  this 
square, corresponding to coordinates (0, h) in image space. The implicit transformation from image space to 
user space, if specified explicitly, would be described by the matrix [ 1 ⁄ w  0  0  -1 ⁄ h  0  1 ]. 
Figure 34 –  Source Image Coordinate System
Figure 35 –  Mapping the Source Image
An image can be placed on the output page in any position, orientation, and size by using the cm  operator to 
modify the current transformation matrix (CTM) so as to map the unit square of user space to the rectangle or 
parallelogram in which the image shall be painted. Typically, this is done within a pair of q and Q operators to 
0
1
h-1
2
h
0
1
2
w-1
w
0
1
w-1
w
w+1
2w-1
(h-1)w
(h-1)w+1
hw-1
h
0
w
0
(0, 1)
(1, 1)
(0, 0)
(1, 0)
Unit square
in user space
Current page
Source image
CTM
C# Image Convert: How to Convert Adobe PDF to Jpeg, Png, Bmp, &
C# DLLs for PDF Conversion to Images. Add necessary references to your C# project: This demo code convert PDF file all pages to jpg images.
add jpg to pdf document; add photo to pdf online
C# Image Convert: How to Convert Dicom Image File to Raster Images
Add necessary references to your C# project RasterEdge.XDoc.PDF.dll. inputFilePath = @"C:\input.dcm"; String outputFilePath = @"C:\output.jpg"; // Convert dicom
how to add an image to a pdf in reader; add image pdf
PDF 32000-1:2008
206
© 
Adobe Systems Incorporated 2008 – All rights reserved
isolate the effect of the transformation, which can include translation, rotation, reflection, and skew (see 8.3, 
"Coordinate Systems"). 
EXAMPLE
If the XObject subdictionary of the current resource dictionary defines the name Image1 to denote an 
image XObject, the code shown in this example paints the image in a rectangle whose lower-left corner is 
at coordinates (100, 200), that is rotated 45 degrees counter clockwise, and that is 150 units wide and 80 
units high. 
q
% Save graphics state
 0  0  1  100  200  cm
% Translate
0. 7071  0. 7071  -0. 7071  0. 7071  0  0  cm
% Rotate
150  0  0  80  0  0  cm
% Scale
/Image1  Do
% Paint image
Q
% Restore graphics state
As discussed in 8.3.4, "Transformation Matrices", these three transformations could be combined into 
one. Of course, if the aspect ratio (width to height) of the original image in this example is different from 
150:80, the result will be distorted. 
8.9.5
Image Dictionaries
8.9.5.1
General
An image dictionary—that is, the dictionary portion of a stream representing an image XObject—may contain 
the entries listed in Table 89 in addition to the usual entries common to all streams (see Table 5). There are 
many relationships among these entries, and the current colour space may limit the choices for some of them. 
Attempting to use an image dictionary whose entries are inconsistent with each other or with the current colour 
space shall cause an error. 
The entries described here are appropriate for a base image—one that is invoked directly with the Do operator. 
Some of  the  entries should not be used  for  images  used in other  ways, such as  for  alternate  images (see 
8.9.5.4, "Alternate Images"), image  masks  (see 8.9.6,  "Masked Images"), or  thumbnail  images (see 12.3.4, 
"Thumbnail Images"). Except as noted, such irrelevant entries are simply ignored by a conforming reader 
Table 89 –  Additional Entries Specific to an Image Dictionary  
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if 
present, shall be XObject for an image XObject. 
Subtype
name
(Required) The type of XObject that this dictionary describes; shall 
be Image  for an image XObject. 
Width
integer
(Required) The width of the image, in samples. 
Height
integer
(Required) The height of the image, in samples. 
ColorSpace
name or 
array
(Required for images, except those that use the JPXDecode filter; 
not allowed forbidden for image masks) The colour space in which 
image  samples  shall  be  specified;  it  can  be  any  type  of  colour 
space except Pattern.
If the image uses the JPXDecode filter, this entry may be present:
If ColorSpace is present, any colour space specifications in 
the JPEG2000 data shall be ignored.
If ColorSpace is absent, the colour space specifications in the 
JPEG2000 data shall be used. The Decode array shall also be 
ignored unless ImageMask  is true.
C# Create PDF from images Library to convert Jpeg, png images to
images.Add(new Bitmap(Program.RootPath + "\\" 1.jpg")); images.Add(new Bitmap(Program.RootPath + "\\" 1.png")); / Build a PDF document with
adding images to pdf; add a jpg to a pdf
C# WPF PDF Viewer SDK to convert and export PDF document to other
Highlight Text. Add Text. Add Text Box. Drawing Markups. Add Stamp Annotation. image file formats with high quality, support converting PDF to PNG, JPG, BMP and
add picture to pdf in preview; how to add image to pdf in acrobat
© 
Adobe Systems Incorporated 2008 – All rights reserved
207
PDF 32000-1:2008
BitsPerComponent
integer
(Required  except  for  image  masks  and  images  that  use  the 
JPXDecode filter) The number of bits used to represent each 
colour  component.  Only  a  single  value  shall  be  specified;  the 
number of bits shall be the same for all colour components. The 
value shall be 1, 2, 4, 8, or (in PDF 1.5) 16. If ImageMask  is true , 
this entry is optional, but if specified, its value shall be 1. 
If the image stream uses a filter, the value of BitsPerComponent
shall be consistent with the size of the data samples that the filter 
delivers. In particular, a CCITTFaxDecode or JBIG2Decode filter 
shall  always  deliver  1-bit  samples,  a RunLengthDecode  or 
DCTDecode filter shall always deliver 8-bit samples, and an 
LZWDecode or  FlateDecode filter shall deliver samples of a 
specified size if a predictor function is used.
If the image stream uses the JPXDecode filter, this entry is optional 
and shall be ignored if present. The bit depth is determined by the 
conforming  reader  in  the  process  of  decoding  the  JPEG2000 
image.
Intent
name
(Optional; PDF 1.1) The name of a colour rendering intent to be 
used  in  rendering  the  image  (see  8.6.5.8,  "Rendering  Intents"). 
Default value: the current rendering intent in the graphics state. 
ImageMask
boolean
(Optional) A flag indicating whether the image shall be treated as 
an image mask (see 8.9.6, "Masked Images"). If this flag is true , 
the  value  of BitsPerComponent  shall  be  1  and Mask  and 
ColorSpace shall not be specified; unmasked areas shall be
painted using the current nonstroking colour. Default value: false . 
Mask
stream 
or array
(Optional except for image masks; not allowed for image masks; 
PDF 1.3) An image XObject defining an image mask to be applied 
to  this  image  (see  8.9.6.3,  "Explicit  Masking"),  or  an  array 
specifying  a range of  colours to  be applied to it  as a colour key 
mask (see 8.9.6.4, "Colour Key Masking"). If ImageMask  is true , 
this entry shall not be present. 
Decode
array
(Optional) An array of numbers describing how to map image 
samples into the range of values appropriate for the image’s colour 
space (see  8.9.5.2,  "Decode Arrays"). If ImageMask  is true , the 
array shall be either [ 0  1 ] or [ 1  0 ]; otherwise, its length shall be
twice the number of colour components required by ColorSpace. If 
the  image  uses  the JPXDecode filter  and ImageMask   is false , 
Decode shall be ignored by a conforming reader.
Default value: see 8.9.5.2, "Decode Arrays". 
Interpolate
boolean
(Optional) A flag indicating whether image interpolation shall be
performed  by  a  conforming  reader  (see  8.9.5.3,  "Image 
Interpolation"). Default value: false . 
Alternates
array
(Optional; PDF 1.3) An array of alternate image dictionaries for this 
image  (see  8.9.5.4,  "Alternate  Images").  The  order  of  elements 
within the array shall have no significa
nce. This entry shall not be
present in an image XObject that is itself an alternate image. 
Table 89 –  Additional Entries Specific to an Image Dictionary (continued)
Key
Type
Value
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Combine scanned images to PDF, such as tiff, jpg, png, gif, bmp, etc. Add necessary references: In addition, C# users can append a PDF file to the end of a
add image to pdf java; adding image to pdf
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
to combine various scanned images to PDF, such as tiff, jpg, png, gif Add necessary references: In addition, VB.NET users can append a PDF file to the end of a
add image to pdf file; add picture to pdf preview
PDF 32000-1:2008
208
© 
Adobe Systems Incorporated 2008 – All rights reserved
SMask
stream
(Optional;  PDF 1.4) A subsidiary image XObject defining a  soft-
mask image (see 11.6.5.3, "Soft-Mask Images") that shall be used 
as  a  source  of  mask  shape  or  mask  opacity  values  in  the 
transparent  imaging  model.  The  alpha  source  parameter  in  the 
graphics  state  determines  whether  the  mask  values  shall  be
interpreted as shape or opacity. 
If  present, this  entry  shall  override  the  current  soft  mask  in  the 
graphics state, as well as the image’s Mask entry, if any. However, 
the  other transparency-related  graphics  state  parameters—blend 
mode  and  alpha  constant—shall  remain  in  effect.  If SMask  is 
absent, the image shall have no associated soft mask (although the 
current soft mask in the graphics state may still apply). 
SMaskInData
integer
(Optional for images that use the JPXDecode filter, meaningless 
otherwise; PDF 1.5) A code specifying how soft-mask information 
(see 11.6.5.3, "Soft-Mask  Images") encoded  with image samples 
shall be used:
0 If  present,  encoded  soft-mask  image  information  shall  be
ignored.
 The image’s data stream includes encoded soft-mask values. A
conforming  reader  may  create  a  soft-mask  image  from  the 
information  to be used  as a  source of  mask  shape  or  mask 
opacity in the transparency imaging model.
2 The  image’s  data  stream  includes colour  channels that  have 
been  preblended  with  a  background;  the  image  data  also 
includes an opacity channel. A conforming reader may create a 
soft-mask  image with a Matte entry from the opacity  channel 
information  to be used  as a  source of  mask  shape  or  mask 
opacity in the transparency model.
If this entry has a nonzero value, SMask shall not be specified. See 
also 7.4.9, "JPXDecode Filter".
Default value: 0.
Name
name
(Required in PDF 1.0; optional otherwise) The name by which this 
image XObject is referenced in the XObject subdictionary of the 
current resource dictionary (see 7.8.3, "Resource Dictionaries"). 
This entry is obsolescent and shall no longer be used. 
StructParent
integer
(Required if the image is a structural content item; PDF 1.3) The 
integer key of the image’s entry in the structural parent tree (see 
14.7.4.4, "Finding Structure Elements from Content Items"). 
ID
byte string
(Optional;  PDF 1.3;  indirect  reference  preferred) The digital 
identifier  of  the  image’s  parent  Web  Capture  content  set  (see 
14.10.6, "Object Attributes Related to Web Capture"). 
OPI
dictionary
(Optional; PDF 1.2) An OPI version dictionary for the image; see 
14.11.7,  "Open  Prepress Interface  (OPI)".  If ImageMask   is true, 
this entry shall be ignored. 
Metadata
stream
(Optional; PDF 1.4) A metadata stream containing metadata for the 
image (see 14.3.2, "Metadata Streams"). 
OC
dictionary
(Optional; PDF 1.5) An optional content group or optional content 
membership dictionary (see 8.11,  "Optional  Content"), specifying 
the optional content properties for this image XObject. Before the 
image  is processed by a conforming reader, its visibility shall be
determined based on this entry. If it is determined to be invisible, 
the entire image shall be skipped, as if there were no Do operator 
to invoke it.
Table 89 –  Additional Entries Specific to an Image Dictionary (continued)
Key
Type
Value
© 
Adobe Systems Incorporated 2008 – All rights reserved
209
PDF 32000-1:2008
EXAMPLE
This example defines an image 256 samples wide by 256 high, with 8 bits per sample in the DeviceGray 
colour space. It paints the image on a page with its lower-left corner positioned at coordinates (45, 140) in 
current user space and scaled to a width and height of 132 user space units. 
20  0  obj
% Page object
<<   /Type  /Page
/Parent  1 0 R
/Resources  21 0 R
/MediaBox  [ 0  0  612  792 ]
/Contents  23 0 R
>>
endobj
21  0  obj
% Resource dictionary for page
<<   /ProcSet  [ /PDF  /ImageB ]
/XObject  <<  /Im1  22 0 R  >>
>>
endobj
22  0  obj
% Image XObject
<<   /Type  /XObject
/Subtype  /Image
/Width  256
/Height  256
/ColorSpace  /DeviceGray
/BitsPerComponent  8
/Length  83183
/Filter  /ASCII85Decode
>>
stream
9LhZI9h\GY9i+bb;,p:e;G9SP92/)X9MJ>^:f14d;,U(X8P;cO;G9e];c$=k9Mn\]
… Image data representing 65,536 samples …
8P;cO;G9e];c$=k9Mn\]~>
endstream
endobj
23  0  obj
% Contents of page
<<  /Length  56  >>
stream
q
% Save graphics state
132  0  0  132  45  140  cm
% Translate to (45,140) and scale by 132
/Im1  Do
% Paint image
Q
% Restore graphics state
endstream
endobj
8.9.5.2 Decode Arrays
An image’s data stream is initially decomposed into integers in the domain 0 to 2n -1, where n is the value of 
the  image  dictionary’s BitsPerComponent  entry.  The  image’s Decode  array  specifies  a  linear  mapping of 
each integer component value to a number that would be appropriate as a component value in the image’s 
colour space. 
Each pair of numbers in a Decode array specifies the lower and upper values to which the domain of sample 
values in the image is mapped. A Decode array shall contain one pair of numbers for each component in the 
colour  space  specified  by  the  image’s ColorSpace  entry.  The  mapping  for  each  colour  component,  by  a 
conforming  reader  shall  be  a  linear  transformation;  that  is,  it  shall  use  the  following  formula  for  linear 
interpolation: 
PDF 32000-1:2008
210
© 
Adobe Systems Incorporated 2008 – All rights reserved
This formula is used to convert a value x between x
min
and x
max
to a corresponding value y between y
min
and 
y
max
, projecting along the line defined by the points (x
min
y
min
) and (x
max
y
max
). 
NOTE 1
While this formula applies to values outside the domain x
min
to x
max
and does not require that x
min
x
max
, note 
that interpolation used for colour conversion, such as the Decode array, does require that x
min
x
max
and clips 
x values to this domain so that y = y
min
for all x £ x
min 
, and y = y
max
for all x Š x
max
For a Decode array of the form [ D
min
D
max
], this can be written as 
where 
n shall be the value of 
BitsPerComponent
x shall be the input value, in the domain 0 to 2n - 1 
D
min
and D
max
shall be the values specified in the 
Decode
array 
y is the output value, which shall be interpreted in the image’s colour space 
Samples with a value of 0 shall be mapped to D
min
, those with a value of 2n - 1 shall be mapped to D
max
, and 
those with  intermediate  values  shall  be mapped  linearly  between D
min
and D
max
.  Table 90  lists  the default 
Decode arrays which shall be used with the various colour spaces by a conforming reader. 
NOTE 2
For most colour spaces, the Decode arrays listed in the table map into the full range of allowed component 
values. For an Indexed  colour space, the default Decode array ensures that component values that index a 
colour table are passed through unchanged. 
Table 90 –  Default Decode Arrays  
Colour Space
Decode Array
DeviceGray
[ 0.0  1.0 ]
DeviceRGB
[ 0.0  1.0   0.0  1.0   0.0  1.0 ]
DeviceCMYK
[ 0.0  1.0   0.0  1.0   0.0  1.0   0.0  1.0 ]
CalGray
[ 0.0  1.0 ]
CalRGB
[ 0.0  1.0   0.0  1.0   0.0  1.0 ]
Lab
[ 0  100   a
min
a
max
b
min
b
max
] where a
min
a
max
b
min
, and 
b
max
correspond  to  the  values  in  the Range  array  of  the 
image’s colour space 
y
Interpolate x x
min
x
max
y
min
y
max
,
,
,
,
)
(
=
y
min
x x
min
)
(
y
max
y
min
x
max
x
min
----------------------------
×
+
=
y
Interpolate  x 0 2
n
1
D
min
D
max
, ,
,
,
)
(
=
D
min
x
D
max
D
min
2
n
1
-------------------------------
×
+
=
© 
Adobe Systems Incorporated 2008 – All rights reserved
211
PDF 32000-1:2008
NOTE 3
It is possible to specify a mapping that inverts  sample colour intensities by specifying a D
min
value greater than 
D
max
. For example, if the image’s colour space is DeviceGray and the Decode array is [ 1.0  0.0 ], an input 
value of 0 is mapped to 1.0 (white); an input value of 2n - 1 is mapped to 0.0 (black). 
The D
min
and D
max
parameters for a colour component need not fall within the range of values allowed for that 
component. 
NOTE 4
For instance, if an application uses 6-bit numbers as its native image sample format, it can represent those 
samples in PDF in 8-bit form, setting the two unused high-order bits of each sample to 0. The image dictionary 
should then specify a Decode array of [ 0.00000  4.04762 ], which maps input values from 0 to 63 into the 
range 0.0 to 1.0 (4.04762 being approximately equal to 255 ³ 63). 
If an output  value  falls  outside the  range allowed  for a component, it shall  be automatically adjusted  to the 
nearest allowed value. 
8.9.5.3 Image Interpolation
When the resolution of a source image is significantly lower than that of the output device, each source sample 
covers many  device  pixels.  As  a  result, images  can  appear  jaggy or  blocky. These  visual  artifacts can  be 
reduced by applying an image interpolation  algorithm during rendering. Instead of painting all pixels covered by 
a source sample with the same colour, image interpolation attempts to produce a smooth transition between 
adjacent sample values. 
Image  interpolation  is  enabled  by  setting  the Interpolate   entry  in  the  image  dictionary  to true .  It  shall  be 
disabled by default because it may increase the time required to render the image.
NOTE
 conforming  Reader  may  choose  to  not  implement  this  feature  of  PDF,  or  may  use  any  specific 
implementation of interpolation that it wishes.
8.9.5.4 Alternate Images
Alternate  images  (PDF  1.3) provide a straightforward and backward-compatible way to include multiple 
versions of an image in a PDF file for different purposes. These variant representations of the image may differ, 
for example, in resolution or  in  colour space. The  primary  goal is to reduce the need  to maintain  separate 
versions of a PDF document for low-resolution on-screen viewing and high-resolution printing. 
base image (that is, the image XObject referred to in a resource dictionary) may contain an Alternates entry. 
The value of this entry shall be an array of alternate image dictionaries specifying variant representations of the 
base image. Each alternate image dictionary shall contain an image XObject for one variant and shall specify 
its properties. Table 91 shows the contents of an alternate image dictionary.
ICCBased
Same as the value of Range in the ICC profile of the image’s 
colour space 
Indexed
[ 0 N ], where N 
=
2n 
1
Pattern
(Not permitted with images)
Separation
[ 0.0  1.0 ]
DeviceN
[  0.0  1.0   0.0  1.0   …   0.0  1.0 ]  (one  pair  of  elements  for 
each colour component)
Table 90 –  Default Decode Arrays (continued)
Colour Space
Decode Array
PDF 32000-1:2008
212
© 
Adobe Systems Incorporated 2008 – All rights reserved
EXAMPLE
The following shows an image with a single alternate. The base image is a grayscale image, and the 
alternate is a high-resolution RGB image stored on a Web server. 
10  0  obj
% Image XObject
<<   /Type  /XObject
/Subtype  /Image
/Width  100
/Height  200
/ColorSpace  /DeviceGray
/BitsPerComponent  8
/Alternates  15 0 R
/Length  2167
/Filter  /DCTDecode
>>
stream
… Image data …
endstream
endobj
15  0  obj
% Alternate images array
[   <<  /Image  16 0 R
/DefaultForPrinting  true
 >>
]
endobj
16  0  obj
% Alternate image
<<   /Type  /XObject
/Subtype  /Image
/Width  1000
/Height  2000
/ColorSpace  /DeviceRGB
/BitsPerComponent 
8
/Length  0
% This is an external stream
/F  <<  /FS  /URL
/F  ( http : / / www . myserver . mycorp . com / images / exttest . jpg )
 >>
/FFilter  /DCTDecode
>>
stream
endstream
endobj
Table 91 –  Entries in an Alternate Image Dictionary  
Key
Type
Value
Image
stream
(Required) The image XObject for the alternate image. 
DefaultForPrinting
boolean
(Optional) A flag indicating whether this alternate image shall be the 
default  version to  be  used for  printing.  At  most one  alternate for  a 
given base image shall be so designated. If no alternate has this entry 
set to true , the base image shall be used for printing by a conforming 
reader. 
OC
dictionary
(Optional; PDF 1.5) An optional content group (see 8.11.2, "Optional 
Content  Groups")  or  optional  content  membership  dictionary  (see 
8.11.2.2, "Optional Content Membership Dictionaries") that facilitates 
the selection of which alternate image to use.
Documents you may be interested
Documents you may be interested