CgmInfo is a fully managed CGM Metafile library based on the ISO/IEC 8632:1999 standard intended for extraction of various informations encoded in either binary or text (as described by Part 3 and 4 of ISO/IEC 8632, respectively). It's licensed under the terms of the GNU General Public License, version 3 or later (GPLv3+).
- Microsoft Visual Studio 2022 (Community Edition or higher to build)
- Workloads for .NET desktop development and .NET Core cross-platform development
- NuGet to build
CgmInfoGui
, which is a GUI tool to display Metafile information
CgmInfo
: The main library, targetting .NET Standard 2.0. Entry point isMetafileReader
in theCgmInfo
Namespace which attempts to determine on whether to read the file as binary or text.CgmInfoCmd
: A CLI application printing a semi-spammy overview of the Metafile, targetting .NET 9.0. Mostly included for testing and reference only.CgmInfoGui
: A GUI application written in AvaloniaUI to present a view on various aspects of the metafile, such as its metafile structure, its application structure and other uses such as hotspot information or XML Companion file creation.
CgmInfo is fully written in C# and should work on all platforms that implement at least .NET Standard 2.0; with the CLI application CgmInfoCmd and the GUI application CgmInfoGui requiring .NET 9.0 (or later).
- Avalonia for the cross-platform UI framework.
- AvaloniaEdit for XML rendering, as there is no
FlowDocument
equivalent in Avalonia (yet).- An updated version of XML-to-WPF FlowDocument by Chris Cavanagh that better suits my needs.
- AvaloniaHex for viewing of unsupported/unexpected commands.
- Dock.Avalonia for the general layout.
- ImageSharp for conversion of embedded raster files, since Avalonia (and Skia) don't support some of the formats.