SVG呈现

设置选项:

将SVG呈现到目标设备:

L_SvgRenderOptions包含以下成员:

成员

界限

目标矩形,像素坐标。SVG文档将被呈现,以适应这个矩形的中心位置。
L_SvgRenderOptions。变换will be applied to this rectangle.

ClipBounds

剪切矩形,像素坐标。引擎将把这个剪辑应用到L_SvgRenderOptions中。界限to exclude all or parts of the objects that do not fit.
L_SvgRenderOptions。变换will not be applied to this rectangle.

变换

要应用的转换。这是一个L_MATRIX结构,可用于对最终文档应用缩放、平移和旋转。

写成BackgroundColor

SVG文档没有背景色。使用此属性填充L_SvgRenderOptions。界限(final transformation applied) with a color. Will only be used if L_SvgRenderOptions.UseBackgroundColor is TRUE.

UseBackgroundColor

使用L_SvgRenderOptions。写成BackgroundColorto fill the background of the transformed destination rectangle.

重要提示L_SvgRenderDocument如果L_SvgNodeHandle不平坦或不包含有效边界,将返回一个错误。有关更多信息,请参阅SVG大小、边界和平面

下面的代码演示了如何通过自动检查flat和bounds状态来呈现文档:

无效渲染文档(L_SvgNodeHandle docHandle, HDC HDC, L_SvgRenderOptions* options)L_SvgNodeHandle flatDocHandle = NULL;//如果文件不是平坦的,将其压平,自动计算大小L_BOOL isFlat = TRUE;L_INT nRet = L_SvgIsFlatDocument(docHandle, &isFlat);如果(isFlat !)L_SvgFlatDocument(docHandle, &flatDocHandle, NULL);其他的flatDocHandle = docHandle;//如果文档没有有效的边界,现在自动计算它L_SvgBounds界限;L_SvgGetBounds (flatDocHandle界限,运算符(L_SvgBounds));如果(bounds.IsValid !)L_SvgCalculateBounds (flatDocHandle假);//现在,渲染文档L_SvgRenderDocument(hdc, flatDocHandle, options);如果(isFlat !)L_SvgFreeNode (flatDocHandle);

LEADTOOLS将创建内部数据结构以加速渲染。此数据可以被缓存和重用L_SvgBeginRenderOptimizeDocument而且L_SvgEndRenderOptimizeDocument

如果L_SvgNodeHandle只呈现一次,建议保持优化不变。但是,如果文档将被渲染多次,那么建议缓存此数据以提高速度。

L_SvgBeginRenderOptimizeDocument可能会使用存储在内部数据中的额外系统资源。L_SvgEndRenderOptimizeDocument可以在任何时候手动释放这个数据。

L_SvgBeginRenderOptimizeDocument和L_SvgEndRenderOptimizeDocument使用内部计数器来跟踪优化的状态。L_SvgBeginRenderOptimizeDocument增加这个计数器,L_SvgEndRenderOptimizeDocument减少它,因此优化只在需要时执行,任何数量的L_SvgBeginRenderOptimizeDocument和L_SvgEndRenderOptimizeDocument调用可以链接在一起而不影响文档。

这些内部数据将被自动释放L_SvgFreeNode不管计数器的值是多少。

若要确定文档是否已优化呈现数据,请使用L_SvgIsRenderOptimizedDocument

LEADTOOLS SVG API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。