Click or drag to resize
AB4D logo

ReaderSvgReadGeometry Method

Reads svg or svgz file and returns System.Windows.Controls.Image with elements as Drawings (DrawingGeometry, EllipseGeometry, GlyphRunDrawing etc.) with no optimization.
Overload List
  NameDescription
Public methodCode exampleReadGeometry(Stream)
Reads svg or svgz file and returns System.Windows.Controls.Image with elements as Drawings (DrawingGeometry, EllipseGeometry, GlyphRunDrawing etc.) with no optimization.
Public methodCode exampleReadGeometry(String)
Reads svg or svgz file and returns System.Windows.Controls.Image with elements as Drawings (DrawingGeometry, EllipseGeometry, GlyphRunDrawing etc.) with no optimization.
Public methodCode exampleReadGeometry(Stream, GeometrySettings)
Reads svg or svgz file and returns System.Windows.Controls.Image with elements as Drawings (DrawingGeometry, EllipseGeometry, GlyphRunDrawing etc.).
Public methodCode exampleReadGeometry(String, GeometrySettings)
Reads svg or svgz file and returns System.Windows.Controls.Image with elements as Drawings (DrawingGeometry, EllipseGeometry, GlyphRunDrawing etc.).
Top
Remarks

Drawing objects do not derive from the FrameworkElement class and provide a lighter-weight implementation for rendering shapes, images, and text. Because of this Drawing objects on one side lack support for Layout System, input, and focus, but on the other side have much better performance and lower memory consumption.

Returned Drawing has much better performance as Shapes that are returned with Read method.

If better layout support, input, focus and other functionality is needed use Read method instead that returns elements as Shapes.

It is also possible to optimize the read Drawing objects with the GeometrySettings objects that is passed to the ReadGeometry(String, GeometrySettings) method.

Examples
The following sample reads the mySample.svg file into sampleImage with no optimization:
Image sampleImage = myReader.ReadGeometry(@"c:\mySample.svg");
The following sample shows how to read svg file from Application's Resource (mySample.svg file is included into the project under cliparts folder and its build action is set to Resource). The svg file is read into Drawing objects with full geometry optimization.
Image clipartFromResource;
Ab2d.Common.ReaderSvg.GeometrySettings settings;

// gets Drawing objects optimized for best performance
// NOTE: Because of heavy optimization it is possible that some anomalies appear on the image
settings = Ab2d.Common.ReaderSvg.GeometrySettings.FullOptimization;

Uri uri = new Uri("/cliparts/mySample.svg", UriKind.Relative);
using (Stream svgStream = Application.GetResourceStream(uri).Stream)
{
    clipartFromResource = Ab2d.ReaderSvg.Instance.ReadGeometry(svgStream, settings);
}
See Also