home *** CD-ROM | disk | FTP | other *** search
- Embedding International Color Consortium Profiles in EPS
-
- There are two places within EPS files that embedding International Color
- Consortium (ICC) profiles are appropriate. 1) Associated with a screen
- preview. 2) Associated with the page description. Embedding ICC profiles
- within a screen preview is necessary so that applications using this screen
- preview to display a representation of the EPS page description can do so
- with accurate colors. Embedding ICC profiles within a page description is
- necessary so that sophisticated applications, such as OPI server software,
- can perform color conversions along with image replacement. For general
- information concerning PostScript's Document Structuring Conventions (DSC),
- the EPS file format, or specific PostScript operators, see the PostScript
- Language Reference Manual, second edition.
-
- 1) There are a variety of different methods of storing a screen preview
- within an EPS file depending on the intended environment. For cross
- platform applications with embedded ICC profiles, TIFF screen previews are
- recommended. The TIFF format has been extended to support the embedding of
- ICC profiles. ICC profiles can also be embedded in a platform specific
- manner. For example on the Macintosh, Apple has defined a method for
- embedding ICC profiles in PICT files.
-
- Note that a given page description may use multiple distinct color spaces.
- In such cases, color conversions must be performed to a single color space
- to associate with the screen preview.
-
- 2) ICC profiles can also be embedded in the page description portion of an
- EPS file using the %%BeginICCProfile / %%EndICCProfile comments. This
- convention is defined as follows.
-
- %%BeginICCProfile: <profileid> <numberof> [<type> [<bytesorlines>]]
- <profileid> ::= <text> (Profile ID)
- <numberof> ::= <int> (Lines or physical bytes)
- <type> ::= Hex | ASCII (Type of data)
- <bytesorlines> ::= Bytes | Lines (Read in bytes or lines)
- %%EndICCProfile (no keywords)
-
- These comments are designed to provide information about embedded ICC
- profiles. If the type argument is missing, ASCII data is assumed. ASCII
- refers to an ASCII base-85 representation of the data. If the bytesorlines
- argument is missing, <numberof> shall be considered to indicate bytes of
- data. If <numberof> = -1, the number of bytes of data are unknown. In this
- case, to skip over the profile one must read data until the encountering
- the %%EndICCProfile comment.
-
- <profileID> provides the profile's ID in order to synchronize it with
- PostScript's setcolorspace and findcolorrendering operators and associated
- operands (see below). Note that <numberof> indicates the bytes of physical
- data, which vary from the bytes of virtual data in some cases. With hex,
- each byte of virtual data is represented by two ASCII characters (two bytes
- of physical data). Although the PostScript interpreter ignores white space
- and percent signs in hex and ASCII data, these count toward the byte count.
-
-
- Each line of profile data shall begin with a single percent sign followed
- by a space (% ). This makes the entire profile section a PostScript
- language comment so the file can be sent directly to a printer without
- modification. The space avoids confusion with the open extension mechanism
- associated with DSC comments.
-
- ICC profiles can be embedded within EPS files to allow sophisticated
- applications, such as OPI server software, to extract the profiles, and to
- perform color processing based on these profiles. In such situations it is
- desirable to locate the page description's color space and rendering
- intent, since this color space and rendering intent may need to be modified
- based on any color processing. The %%BeginSetColorSpace /
- %%EndSetColorSpace and %%BeginRenderingIntent / %%EndRenderingIntent
- comments are used to delimit the color space and rendering intent
- respectively.
-
- %%BeginSetColorSpace <profileid>
- <profileid> ::= <text> (ICC Profile ID)
- %%EndSetColorSpace (no keywords)
-
- <profileid> provides the ICC profile's ID corresponding to this color
- space. The ICC profile with this profile must have occured in the
- PostScript job using the %%BeginICCProfile / %%EndICCProfile comment
- convention prior to this particular %%BeginSetColorSpace comment.
-
- An example usage is shown here for CIE 1931 (XYZ)-space with D65 white
- point that refers to the ICC profile with <profileid> = XYZProfile.
-
- %%BeingSetColorSpace XYZProfile
- [/CIEBasedABC <<
- /WhitePoint [0.9505 1 1.0890]
- /RangeABC [0 0.9505 0 1 0 1.0890]
- /RangeLMN [0 0.9505 0 1 0 1.0890]
- >>] setcolorspace
- %%EndSetColorSpace
-
- Note that the setcolorspace command is included within the comments. The
- PostScript enclosed in these comments shall not perform any other
- operations other than setting the color space and shall have no side
- effects.
-
- %%BeginRenderingIntent <profileid>
- <profileid> ::= <text> (ICC Profile ID)
- %%EndRenderingIntent
-
- <profileid> provides the ICC profile's ID corresponding to this rendering
- intent. The ICC profile with this profile must have occured in the
- PostScript job using the %%BeginICCProfile / %%EndICCProfile comment
- convention prior to invocation of this particular %%BeginRenderingIntent
- comment.
-
- An example usage is shown here for the the Perceptual rendering intent that
- refers to the ICC profile with <profileid> = RGBProfile.
-
- %%BeginRenderingIntent RGBProfile
- /Perceptual findcolorrendering pop
- /ColorRendering findresource setcolorrendering
- %%EndRenderingIntent
-
- Note that the setcolorrendering command is included within the comments.
- The PostScript enclosed in these comments shall not perform any other
- operations other than setting the rendering intent and shall have no side
- effects.
-
-