SVG大小、范围和持平

主类为处理SVG文档在LEADTOOLSLeadtools.Svg.SvgDocument类。

规模、范围和持平

SVG(可伸缩向量图形)格式的文档可能会或可能不会有一个大小。如果文档有一个尺寸,它是存储在宽度高度根的属性svg元素,可以在任何坐标系统。SVG呈现器通常会使用这个值来确定最后的边界矩形文档。如果省略它,那么它将需要提供这些信息外部(例如,通过使用SVG)的父容器。计量单位也要求所有坐标系统转换为物理像素。这就是所谓的文档的视图。

SVG文档包含一个元素的层次结构。最后的变换(如位置和大小)和样式(颜色、填充等)可以依赖母公司的转换和风格(s)在层次结构。SVG呈现器计算和跟踪这些信息当输出设备查看的文档。这个过程是由LEADTOOLS定义压扁该文档。没有转换的文档/样式应用于子元素被定义为一个由LEADTOOLS文档。文档转换/样式应用到子元素被定义为一个由LEADTOOLS文档。

呈现一个SVG文档,通常执行以下步骤:

SvgDocument支持

Leadtools.Svg.SvgDocument类可以处理任何类型的SVG(有或没有一个尺寸,平面,或非)。然而,呈现文档或提取最后一个元素的位置和大小,任何缺失的信息必须计算自动或用户提供的。

非文档转换为平面,就地利用SvgDocument.Flat方法。该方法接受一个SvgFlatOptions参数可以包含文档的最终期望的大小(以像素为单位)。如果省略该参数或大小的值是0,SvgDocument会自动计算最后的大小。这个方法返回时,转换和风格值将被应用到每个子元素。使用SvgDocument.ToFlat对一个目标进行压扁文档无需修改源代码。

确定一个文档是平的,调用SvgDocument.IsFlat财产。这是一个内部类,并将状态保存如果SvgDocument.Flat以前没有呼吁文档。的SvgDocument.SetFlat方法可用于手动设置或重置这个标志的状态(如果需要的话)。

平的SVG文档的大小和最后的窗口可以使用计算SvgDocument.CalculateBounds方法。这种方法将使用当前大小信息(如果可用)+物理位置,大小,和转换的每个元素来计算最终的像素和分辨率大小的文档。该方法将商店中的值SvgDocument.Bounds财产。

SvgDocument.CalculateBounds接受一个布尔值控制是否忽视当前大小信息(如果可用),和纯粹的使用子元素的位置和大小(修剪)或使用大小如果可用(non-trimmed)。SvgDocument.CalculateBounds将会失败如果文档不是平的。

SvgDocument.Bounds的类型是SvgBounds。确定文档的大小计算,使用SvgBounds.IsValid财产。这是一个内部状态被这个类并将如果SvgDocument.CalculateBounds以前没有呼吁文档。的SvgBounds.BoundsSvgBounds.Resolution包含物理边界矩形像素和分辨率DPI的文档,分别。的SvgDocument.SetBounds方法可用于设置或手动复位范围(如果需要的话)。

当加载一个SVG文档直接使用SvgDocument.LoadFromFile,SvgDocument.LoadFromStreamSvgDocument.LoadFromMemory,没有压扁或大小的计算。文档加载。

当使用RasterCodecs.LoadSvgDocumentsPage.GetSvg将一个页面从任何SVG文档或向量,由此产生的文档可能会或可能不会包含大小、范围或平坦的信息。

SvgDocument.Render用于呈现SVG文档到目标设备。这个方法需要一个平坦的文档与有效边界。有关更多信息,请参考SVG呈现

下面的代码演示了如何渲染文档通过自动检查其平面和边界状态:

无效RenderDocument (IRenderingEngine引擎,SvgRenderOptions选项,SvgDocument SvgDocument){/ /如果文件不是平,平它,并自动计算它的大小如果(svgDocument.IsFlat !)svgDocument.Flat ();/ /如果文档没有有效范围,自动计算现在varsvgBounds = svgDocument.Bounds;如果(svgBounds.IsValid !)svgDocument.CalculateBounds ();/ /现在,呈现文档svgDocument。呈现(引擎、期权);}

部分LEADTOOLS将自动执行压扁和SVG的计算边界如前所述(例如,设置使用一个SVG文档的图像查看器(imageview)使用ImageViewerItem.SvgDocument或一个SVGImageViewerItem.Url)。

使用SVG
SVG呈现

LEADTOOLS成像、医学和文档