Sustainability of Digital Formats: Planning for Library of Congress Collections

Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact
Format Description Categories >> Browse Alphabetical List

Computer Graphics Metafile (CGM) File Format Family

>> Back
Table of Contents
Format Description Properties Explanation of format description terms

Identification and description Explanation of format description terms

Full name Computer Graphics Metafile (CGM) File Format Family
Description

The Computer Graphics Metafile (CGM) format family is a family of free and open international standard file formats for 2D vector graphics, raster graphics, and text, which are defined by the current ISO/IEC 8632-1:1999 standard. As stated in ISO 8632-1:1999, “[CGM]… is a graphics data interchange standard which defines a neutral computer interpretable representation of 2D graphical (pictorial) information in a manner that is independent from any particular application or system. The purpose of the standard is to facilitate the storage and retrieval of graphical information between applications, software systems, and/or devices." A CGM file can contain:

  • Vector graphics (e.g., polylines, ellipses, NURBS [non-uniform rational basis spline])
  • Raster graphics (e.g., tile array)
  • Text

There are various versions of CGM files as defined by ISO standards. As stated by IANA (The Internet Assigned Numbers Authority): "Valid version numbers are those specified in ISO 8632:1992 and any amendments. (Currently Versions 1, 2 and 3 are specified in ISO 8632:1992 and version 4 is specified in ISO 8632:1992 Amendment 2 (1995) which adds Application Structures which can be used to support hyper-links.) The versions are upward compatible in the sense that a valid Version 1 metafile is a valid Version 2 metafile, Version 2 is a subset of Version 3, and Version 3 is a subset of Version 4.The version number in this parameter must be the same as the version number within the CGM file itself. It is recommended that only Version 1 CGMs be used initially because most current software handles Version 1 CGMs. It is expected that software will be upgraded to handle version 3 and 4 CGMs. Version 2 is not expected to be widely used as a target implementation level."

The versions of CGM are listed as follows:

  • Original standard, CGM:1987: includes a variety of vector primitives including; lines, polylines, arcs, circles, rectangles, ellipses, polygons, and text.
  • Version 1 (1992): similar to the CGM:1987, this standard included approximately 90 elements which provided a basis for basic interchange capability, as stated in the National Institute of Standards and Technology CGM documentation.
  • Version 2 (1992): contains Closed Figures (a filled primitive comprised of other primitives). Version 2 added over 30 additional elements, including all elements that were used in Version 1 metafiles.
  • Version 3 (1992): expands on the amount of available elements with over 40 new elements added to format’s capabilities." Version 3 metafile functionality includes: the capability to represent compressed tiled images, define external symbol libraries, and greater control of drawing aspects for graphics arts, presentation graphics, and electronic publishing."
  • Version 4 (1999): the current version of the CGM standard was published in ISO 8632-1:1999 that added application structuring.

The 1999 ISO standard specifies two types of encoding formats and contain data encoded using either of the following methods:

  • ISO 8632-1:1999 Title Functional specification.
  • ISO 8632-2:1999: Title character encoding. This was withdrawn in 2001.

CGM files consist of a collection of elements, one of the primary elements being graphical primitives. Based on the current standard, ISO 8632-1:1999 section 6.6, "Graphical primitive elements are those elements that describe the visual components of a picture." Some of these primitive elements include polylines, polymarkers, text, polygons, and ellipses. Section 7.1 introduces other types of elements including:

  • Delimiter Elements: delimit significant structures within the metafile.
  • Metafile Descriptor Elements: describe the functional content, default conditions, identification, and characteristics of the CGM.
  • Picture Descriptor Elements: define the extent of VDC space and declare the parameter modes of attribute elements for the entire picture.
  • Control Elements: specify size and precision of coordinate space and format descriptions of the CGM elements.
  • Attribute Elements: describe the appearance of graphical primitive elements.
  • Escape Elements: describe device- and system-dependent elements used to construct a picture.
  • External Elements: communicate information not directly related to the generation of a graphical image.
  • Segment Elements: provide for the grouping and manipulation of elements.

Formal grammar for functional specifications for Version 1 metafiles can be found in Appendix A of the ISO 8632-1:1999 standard, while Annex B contains the same specifications for Version 2 and Annex C for Version 3 metafiles.

CGM has a variety of associated application profiles. As stated by NIST "An application profile (AP) defines the options, elements, and parameters of ISO 8632 necessary to accomplish a particular function and maximize the probability of interchange between systems implementing the profile. Profiles are defined by application constituencies who agree to adhere to the same subset of CGM for the purpose of graphical data interchange using ISO 8632." There are varieties of industry specific profiles pertaining to the format of technical information and illustrations, which include:

See Adoption

Production phase Designed as a final-state (end-user delivery) format for suitable storage and retrieval of image information for 2D vector graphics, raster graphics, and text.
Relationship to other formats
    Has extension XML, XML (Extensible Markup Language). Beginning with WebCGM 2.0 and upgraded with version 2.1, WebCGM files can contain WebCGM XML Companion File (XCF) for a variety of purposes. Defined by W3C, see https://www.w3.org/Graphics/WebCGM/drafts/REC/WebCGM21-XCF.html.

Local use Explanation of format description terms

LC experience or existing holdings The Library of Congress has a small number of CGM files in its collections.
LC preference See the Library of Congress Recommended Formats Statement (RFS) for format preferences for still image works and 2D and 3D Computer Aided Design.

Sustainability factors Explanation of format description terms

Disclosure Open standard from ISO. The CGM standard is maintained by the British Standards Institution and republished by ISO/IEC.
    Documentation

The current published and publicly available ISO 8632 CGM standard can be found in the ISO/IEC Publicly Available Standards. Other sources of documentation, especially for developments on WebCGM can be found at W3C. CGM Open provides documentation on WebCGM but has been inactive since 2015. Comments welcome.

Adoption

Since its publication, a variety of industry profiles have utilized CGM. According to NIST, "Profiles are defined by application constituencies who agree to adhere to the same subset of CGM for the purpose of graphical data interchange using ISO 8632."

The S1000D is an international XML specification for producing technical publications which has specified the use of CGM for vector graphics. Since CMG Open and W3 published WebCGM in 2001, SD1000 has adapted the WebCGM profile. Issue 5.0 of the S1000D specification, the specification’s CGM profile is defined as a "cascading profile" based on the W3 recommendation in 2010.

The Department of Defense’s CALS profile (Continuous Acquisition and Life-Cycle Support) was first published in 1988 as Digital Representation for Communication of Illustration Data: CGM Application Profile (MIL-D-28003A). The CALs profile was first amended in 1991. The profile was later revised in 2000 and again in 2010.

The aerospace industry has also utilized CGM through the ATA (Air Transport Association) specification in ATA Spec 100, and iSpec 2200. Both specifications document the technical documentation for airplane manufacture as well as airplane operations. The specification sets the standard for using CGM and is referenced in the J2008 automotive profile.

The automotive industry’s J2008 profile is a standard for the exchange of technical documentation that states that graphics should be in the CGM format. According to the J2008 Executive Overview, "The selected standard for vector graphics is the Computer Graphics Metafile (CGM) defined by Air Trans-port Association (ATA) Specification 2100 Digital Data Standards for Aircraft Support (Data Interchange 3.3.2 Graphics Exchange GREXV24)."

Larson Software Technology provides technical graphics software and works with a variety of industries including; aerospace and defense, oil and gas, and general manufacturing. Larson offers conversion products including a CGM to Image and CGM to Vector tool as well as professional CGM viewer tools. Larson Software Technology also supports industry profiles that utilize CGM including S1000D, iSpec 2200, and CGM PIP profiles. SDI Software, another software company graphics file editing for the oil and gas, aerospace, and automotive industries maintains a CGM image conversion tool for desktop applications and the command line. They are also one of the most current sources of conversion tools.

The several versions of CGM complicate viewing options in software applications. CGM does not appear to be a widely used format on PCs. The example CGM files provided here, at FileFormat.Info, illustrate this:

  • The ALLPRIMG.CGM file is in Clear Text (ASCII) form and can be opened and viewed in IrfanView. IrfanView offers a CADImage plugin (version 14.0.0.1) in 32-bit and 64-bit that allows IrfanView to read CGM and SVG files. IrfanView also offers a Hex editor view.
  • IrfanView can also open the CORVETTE.CGM and TECHDRAW.CGM files from the FileFormat.Info examples, which are the Version 1 binary variant of CGM.

New Mac computers do not provide any built-in applications to view CGM files. Both classic and current Mac operating systems can run GraphicConverter, a software program that displays and edits raster graphics files. The latest version (11) of GraphicConverter supports the import of CGM files.

The following graphics editors and software programs offer the functionality to open and manipulate CGM files:

  • CorelDraw is a vector graphics editor that offers CGM import and export functionality. CorelDraw specifies that the application can import version 1, 3, and 4 files while exporting version 1 and 3 as well as WebCGM 1.0 files.
  • Inkscape is an open-source vector graphics editor for Mac and PC used primarily to create SVG files It can import CGM files but needs the UniConverter module installed on Windows in order to do so.
  • UniConverter is also used by the Sk1 project, an open-source cross platform illustration program to serve as an alternative for CorelDraw or Adobe Illustrator. Sk1 supports the import and export of CGM files.

PTC, an American software company, creates CGM filters for import and export of CGM files in Adobe Framemaker. According to PTC's website, "The stability and reliability of these filters has since enabled FrameMaker users to work with CGM files in compliance with international standards such as the CALS and ATA specifications." PTC’s site provides access to a variety of zip file versions of CGM filters for Adobe Framemaker.

    Licensing and patents None.
Transparency As stated by W3, "ISO CGM defines two encodings of the CGM functionality: Binary, and Clear Text. WebCGM, like other leading industry profiles of CGM, limits the encoding to Binary for the purposes of conforming interchange. It is the Binary encoding, which is registered as a MIME type. Using available encoding converters, the Clear Text encoding can be used for debugging, hand authoring, demonstration, etc." The binary encoding is the complete opposite of transparent. It uses codes instead of element names and compresses all the data as much as possible for storage and transfer while retaining the possibility for a computer to render it efficiently. For the clear text ASCII encoding, as a geometric description language, elements are described and named to indicate their function. It is human-readable and straightforward for computer readability, but this encoding is not used in practice.
Self-documentation

Version 4 CGM files include “Application Structure” elements, which were designed to add metadata to a group of primitives. The WebCGM profile was developed in part to enhance metadata association with CGM files. Initial CGM files published on the Web were not interchangeable with other CGM viewers primarily due to associated metadata differences. As stated by a CGM Open technical paper published in 1999, WebCGM was developed to standardize metadata behavior in CGM files. Metadata elements were standardized in WebCGM files to support:

  • Hyperlinking and document navigation.
  • Picture structuring and layering.
  • Search and query on WebCGM picture content.

According to W3, the WebCGM XML Companion file can "bind standardized metadata to a hierarchical object tree in a WebCGM instance."

External dependencies None.
Technical protection considerations None.

Quality and functionality factors Explanation of format description terms

Still Image
Normal rendering Good support.
Color maintenance

The current CGM specification, ISO/IEC 8632-1:1999 section 6.7.6 defines RGB, CIELAB, CIELUV, CMYK, and RGB-related as compatible color models. RGB is the only color model available in both Version 1 and Version 2 metafiles.

The current 1999 specification also highlights CIE colored spaces in relation to CGM. "Two CIE (International Commission on Illumination) recommended, approximately uniform colour spaces, CIELAB and CIELUV, are allowed in the CGM. These colour spaces are non-linear transformations of the CIE 1931 XYZ tristimulus space, into the approximate perceptual correlates of lightness, hue, and chroma."

Annex G in ISO/IEC 8632-1:1999 details the conversion between each CGM color space.

Support for vector graphics, including graphic effects and typography Rich support. See Description above.
Support for multispectral bands Not applicable.
Functionality beyond normal rendering Not applicable.

File type signifiers and format identifiers Explanation of format description terms

Tag Value Note
Filename extension cgm
The cgm standard recommends the use of cgm as extension.
Internet Media Type image/cgm
See registration at IANA
Pronom PUID x-fmt/142
ASCII version 1. As of November 29, 2011 PUID x-fmt/142 is the only PUID that offers descriptive information about cgm. The remaining PUIDs are outline records only.
Pronom PUID fmt/301
ASCII version 3. Outline record only. See http://www.nationalarchives.gov.uk/PRONOM/fmt/301
Pronom PUID fmt/302
ASCII version 4. Outline record only. See http://www.nationalarchives.gov.uk/PRONOM/fmt/302http://www.nationalarchives.gov.uk/PRONOM/fmt/302
Pronom PUID fmt/303
Binary version 1. Outline record only. See http://www.nationalarchives.gov.uk/PRONOM/fmt/303
Pronom PUID fmt/304
Binary version 2. Outline record only. See http://www.nationalarchives.gov.uk/PRONOM/fmt/304
Pronom PUID fmt/305
Binary version 3. Outline record only. See http://www.nationalarchives.gov.uk/PRONOM/fmt/305
Pronom PUID fmt/306
Binary version 4. Outline record only. See http://www.nationalarchives.gov.uk/PRONOM/fmt/306
Tag Value Note
Wikidata Title ID Q1122267
See CGM family wikidata ID at https://www.wikidata.org/wiki/Q1122267
Wikidata Title ID Q26719966
CGM Version 1. See https://www.wikidata.org/wiki/Q26719966
Wikidata Title ID Q26719970
CGM Version 3. See https://www.wikidata.org/wiki/Q26719970
Wikidata Title ID Q26719973
CGM Version 4. See https://www.wikidata.org/wiki/Q26719973

Notes Explanation of format description terms

General  
History

CGM was initially published under the ANSI (American National Standards Institute) X3.122-1986 standard entitled, “Computer Graphics - Metafile for the Storage and Transfer of Picture Description Information.” ISO published this standard a year later known as ISO 8632-1:1987, which includes a variety of vector primitives including; lines, polylines, arcs, circles, rectangles, ellipses, polygons, and text. ISO/IEC 8632 drew extensively for its model of a graphics system on GKS (Graphical Kernel System, ISO/IEC 7942), the first ISO standard for low-level computer graphics, introduced in 1977. ISO 8632-1:1987/AMD 1:1990, the first amendment to the 1987 standard was then superseded by the ISO 8632 standard published in 1992.

The ISO/IEC 8632-1:1992 defines three versions of increasing capability and functionality. The addition of graphical segments was one of the most notable capabilities of Version 2. Version 2 also introduced closed figures (a filled primitive comprised of other primitives) and added over 30 additional elements, including all elements that were used in Version 1 metafiles. As indicated by NIST, "A segment is a group of primitives that is saved once and named, and then may be used repeatedly in the metafile.” Version 3 expands on the amount of available elements with over 40 new elements added to format’s capabilities. “Version 3 metafile functionality includes: the capability to represent compressed tiled images, define external symbol libraries, and greater control of drawing aspects for graphics arts, presentation graphics, and electronic publishing.” The 1992 standard established 3 encodings for the CGM format.

  • ISO/IEC 8632.2:1992 - Character-based, used to produce the smallest possible file size for ease of storage and speed of data transmission.
  • ISO/IEC 8632.3:1992 - Binary encoding.
  • ISO/IEC 8632.4:1992 - Clear text encoding.

The following descriptions of the binary and clear-text encodings can be found in the ISO/IEC Publicly Available Standards for the current CGM standard:

  • ISO/IEC 8632-3:1999:Binary encoded, which facilitates exchange and quick access by software applications.
  • ISO/IEC 8632-4:1999:Clear-text encoded, designed for human readability and ease of modification using an ASCII text editor. "The file begins with an ASCII string representing “begmf” but allowing its characters to be in upper or lower case."

There were two amendments to the 1992 standard, published in 1994 and 1995 respectively. The first amendmentto the 1992 standard establishes rules for profiles. According to NIST, the first amendment provides:

  • "rules for writing profiles"
  • "definition of conforming generators, interpreters, and metafiles, in terms of profiles"
  • "A Model Profile - a usable, implementable profile of CGM. Also can be used as a guide (example) to writing profiles."

The PPF (profile proforma) establishes a template for writing these profiles. Amendment establishes the completion of a PPF as a requirement.

The second amendment published in 1995, focused on functional specifications and application structuring, specifically the application extensions to access pieces of the metafile or image. According to NIST, "Application areas targeted for this 'intelligent graphics' capability include: electronic review of documents, graphical object databases, network distributed graphical applications, and multi-media and hyper-media documents."

The 1999 ISO Standard (the current standard for CGM) extended application structuring. Version 4 stipulates that CGM files can now contain non-graphical information as well as graphical content. In 2001, W3 and the CGM Open Consortium developed a new profile called WebCGM specifically for the use and exchange of CGM files on the web. 2 later versions of WebCGM were published in 2007, WebCGM 2.0 and 2008, WebCGM 2.1 respectively. CGM Larson’s CEO, Don Larson, authored a proposal for a WebCGM 3.0 profile in March 2015.


Format specifications Explanation of format description terms


Useful references

URLs


Last Updated: 06/14/2023