paged.IDML Reference
Images & graphics

Placed images

How an IDML graphic frame holds an Image, PDF or EPS element with its own ItemTransform, GraphicBounds and a Link that names the file or marks it embedded.

Tier: IntermediateIntermediateIIreference

A placed image is a frame with a graphic element inside it: <Image> for pixels, <PDF> for a PDF page, <EPS> for PostScript. The graphic carries its own transform and a <Link> to its file.

In short The frame is an ordinary Rectangle, Oval or Polygon whose outline crops the picture. Inside it, the graphic element has an ItemTransform that places the picture in the frame, a GraphicBounds box in the picture's own units, and a <Link> whose LinkResourceURI names the file. An embedded picture keeps its bytes in the graphic's <Properties><Contents>, and its link says StoredState="Embedded". The frame's <FrameFittingOption> records how the picture was fitted and cropped.

The shape of a graphic frame

A rectangle holding an Image at half scale. The Image's GraphicBounds is the picture's 600 x 400 pixel box; its Link names the file, which this package does not include.

Spreads/Spread_uspread.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<idPkg:Spread xmlns:idPkg="http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging" DOMVersion="20.0">
  <Spread Self="uspread" PageCount="1" BindingLocation="0" ShowMasterItems="true" AllowPageShuffle="true" ItemTransform="1 0 0 1 0 0">
    <Page Self="upage" Name="1" AppliedMaster="umaster" ItemTransform="1 0 0 1 0 0" GeometricBounds="0 0 841.89 595.276" MasterPageTransform="1 0 0 1 0 0"/>
    <Rectangle Self="urect" ItemTransform="1 0 0 1 150 200" FillColor="Swatch/None" StrokeColor="Swatch/None" StrokeWeight="0">
      <Properties>
        <PathGeometry>
          <GeometryPathType PathOpen="false">
            <PathPointArray>
              <PathPointType Anchor="0 0" LeftDirection="0 0" RightDirection="0 0"/>
              <PathPointType Anchor="0 200" LeftDirection="0 200" RightDirection="0 200"/>
              <PathPointType Anchor="300 200" LeftDirection="300 200" RightDirection="300 200"/>
              <PathPointType Anchor="300 0" LeftDirection="300 0" RightDirection="300 0"/>
            </PathPointArray>
          </GeometryPathType>
        </PathGeometry>
      </Properties>
      <Image Self="uimage" ItemTransform="0.5 0 0 0.5 0 0">
        <Properties>
          <GraphicBounds Left="0" Top="0" Right="600" Bottom="400"/>
        </Properties>
        <Link Self="ulink" LinkResourceURI="file:Links/photo.jpg"/>
      </Image>
    </Rectangle>
    <TextFrame Self="uframe" ParentStory="ustory" PreviousTextFrame="n" NextTextFrame="n" ContentType="TextType" AppliedObjectStyle="ObjectStyle/$ID/[None]" Visible="true" Name="$ID/" ItemTransform="1 0 0 1 57.638 145.8237" FillColor="Swatch/None" StrokeColor="Swatch/None" StrokeWeight="0">
      <Properties>
        <PathGeometry>
          <GeometryPathType PathOpen="false">
            <PathPointArray>
              <PathPointType Anchor="0 0" LeftDirection="0 0" RightDirection="0 0"/>
              <PathPointType Anchor="0 400" LeftDirection="0 400" RightDirection="0 400"/>
              <PathPointType Anchor="480 400" LeftDirection="480 400" RightDirection="480 400"/>
              <PathPointType Anchor="480 0" LeftDirection="480 0" RightDirection="480 0"/>
            </PathPointArray>
          </GeometryPathType>
        </PathGeometry>
      </Properties>
    </TextFrame>
  </Spread>
</idPkg:Spread>

Nothing on the frame's own element says "graphic frame": the child graphic does. A frame with no graphic child is an empty frame, or a coloured shape.

In the surveyed documents, <Image> sits in rectangles, ovals and polygons; <PDF> and <EPS> in rectangles.

Two transforms

  • The frame's ItemTransform places the frame in its spread or group, as for any page item.
  • The graphic's ItemTransform places the picture inside the frame: it maps the picture's own space into the frame's inner space. A scale of 0.5 shows the picture at half size; a translation moves it within the frame.

The picture lands where the two composed put it, and only the part inside the frame's outline shows. Cropping is therefore not a property of the picture: it is the frame's outline cutting off what the graphic's transform puts outside it.

<Image>

Attribute · ImageValuesPagedpaged.set
ItemTransformtransformread · writtenimageContentTransform
Selfidwritten
EffectivePpinumber-list / textread
Space$ID/RGBread · written
ActualPpinumber-list / textread
AppliedObjectStyleObjectStyle referencenot read
GradientFillAngleintegernot read
GradientFillHiliteAngleintegernot read
GradientFillHiliteLengthintegernot read
GradientFillLengthintegernot read
The 10 attributes real documents use most. All 31 attributes of Image →
  • ItemTransform places the picture in the frame (above).
  • GraphicBounds, a typed <Properties> child with Left, Top, Right and Bottom, is the picture's own box: for a raster image, 0 0 to its width and height in pixels, one pixel to one unit. The transform maps that box into the frame. InDesign reads it that way: a GraphicBounds set to the frame's box under a scaling transform puts a tiny picture in the wrong place.
  • Space ($ID/RGB, $ID/CMYK, …), ActualPpi and EffectivePpi describe the picture as placed: its colour space, its own resolution and its resolution at the placed size, written as (x y) pairs. They are informational.
  • ImageRenderingIntent and a <Profile> property record the colour handling of the picture; see colour management.

<Image> can also carry ClippingPathSettings, TextWrapPreference and a TransparencySetting of its own. Clipping paths are covered on formats & clipping.

<PDF> and <EPS>

A placed PDF page is a <PDF> element, a placed EPS file an <EPS> element; there is no <EPSImage>. Both sit in the frame where an <Image> would, with the same ItemTransform, GraphicBounds and <Link>. <PDF> adds a <PDFAttribute> child with the PageNumber placed, the PDFCrop box and TransparentBackground, and a <GraphicLayerOption> for the PDF's layers. Placed InDesign pages use <ImportedPage>; none of the surveyed documents has one.

Attribute · PDFAttributeValuesPagedpaged.set
PageNumberintegernot read
PDFCropCropContentVisibleLayersnot read
TransparentBackgroundtruenot read
The 3 attributes real documents use most. All 3 attributes of PDFAttribute →
Attribute · LinkValuesPagedpaged.set
LinkResourceURIrefread · writtenimageUri
AssetIDbuiltinnot read
AssetURLbuiltinnot read
CanEmbedtruewritten
CanPackagetruewritten
CanUnembedtruewritten
ExportPolicyNoAutoExportwritten
ImportPolicyNoAutoImportwritten
LinkClassIDintegerwritten
LinkClientIDintegerwritten
The 10 attributes real documents use most. All 22 attributes of Link →
  • LinkResourceURI names the file. InDesign writes an absolute file: URI with a single slash and percent-encoded spaces: file:/Users/name/Links/photo.psd on a Mac, file:C:/Projects/Links/Logo%20grey.pdf on Windows. A relative URI resolves to nothing in InDesign: the frame keeps its geometry and shows a missing link.
  • StoredState is Normal for a linked file and Embedded when the picture's bytes are inside the document. The surveyed files hold both in roughly equal numbers.
  • LinkResourceFormat names the file type, in InDesign's own words: $ID/JPEG, $ID/Photoshop, $ID/Portable Network Graphics (PNG), $ID/Adobe Portable Document Format (PDF), $ID/WEBP (with a trailing space).
  • The rest (LinkResourceSize, LinkImportTime, LinkClassID, CanEmbed, …) is link management for InDesign's Links panel.

Embedded pictures

An embedded picture keeps its bytes in the graphic element as a typed <Properties> child, <Contents>, holding the file base64-encoded. The <Link> stays, naming where the file originally came from, with StoredState="Embedded". A reader should prefer the embedded bytes when they are present. For an <EPS>, the contents are PostScript, not pixels.

Frame fitting

Attribute · FrameFittingOptionValuesPagedpaged.set
BottomCropinteger / realread
FittingOnEmptyFrameNone | Proportionally | FillProportionally | ContentToFrame | CenterContent | FrameToContentreadframeFittingType
LeftCropinteger / realread
RightCropinteger / realread
TopCropinteger / realread
FittingAlignmentTopLeftPoint | TopCenterPoint | TopRightPoint | CenterLeftPoint | CenterPoint | CenterRightPoint | BottomLeftPoint | BottomCenterPoint | BottomRightPointreadframeFittingReferencePoint
AutoFitfalse | truereadframeAutoFit
The 7 attributes real documents use most. All 7 attributes of FrameFittingOption →

<FrameFittingOption> on the frame records the fitting the user chose and the crop amounts: LeftCrop, TopCrop, RightCrop and BottomCrop in points, negative where the picture extends past the frame; FittingOnEmptyFrame for a picture placed into the frame later (FillProportionally, Proportionally, FitContentToFrame or None); FittingAlignment, the reference point; and AutoFit, which re-fits the picture when the frame is resized. Where the picture sits now is given by the graphic's ItemTransform; the fitting option is how that position came about.

In Paged: the graphic's transform, its link and its embedded <Contents> are read; the embedded bytes win over the link. Linked files are found at render time by the host. A frame whose graphic has no transform is filled by the picture, less the FrameFittingOption crops. The ActualPpi, EffectivePpi and Space metadata are read for display in the editor. Supported · verified Supported · verified

Frequently asked questions

How does an IDML frame point at its image file? Through the LinkResourceURI of the <Link> inside the graphic element. InDesign writes an absolute file: URI.

What is GraphicBounds on an <Image>? The picture's own box: for a raster image, zero to its pixel width and height. The image's ItemTransform maps that box into the frame.

How can I tell an embedded image from a linked one? The <Link> says StoredState="Embedded", and the graphic element carries the bytes as base64 in <Properties><Contents>.

Is it <EPS> or <EPSImage>? <EPS>. There is no <EPSImage> element.

Why does InDesign show a missing link for my generated file? Usually because the URI is relative. InDesign resolves only absolute file: URIs; write the full path, or embed the picture.

On this page