LEADTOOLS Leadtools.Topics.Svg

フレームを表示

ターゲットデバイスにLeadtools.Svg.SvgDocumentを与えること:

  1. IRenderingEngineのインスタンスを得ます

  2. SvgRenderOptionsを用いてレンダリングオプションを準備します

  3. 呼び出しSvgDocument.Render

IRenderingEngineは、以下のメソッドの1つを用いて得られることができます:

SvgRenderOptionsは、以下のプロパティを格納します:

メンバ 説明
境界

デスティネーション四角形(ピクセル座標の)。SVGドキュメントは、この長方形の中にフィットと中心に与えられます。SvgRenderOptions.Transformは、この長方形に適用されます。

ClipBounds

クリッピング長方形(ピクセル座標の)。エンジンは、合わせないオブジェクトの全部または一部を除外するために、境界にこのクリッピングを適用します。SvgRenderOptions.Transformで設定される変換は、この長方形に適用されません。

変換

適用される変換。これは、ズーム、変換と最終的なドキュメントの回転のために使うことができるLeadMatrixインスタンスです。

BackgroundColor

SVGドキュメントは、背景色を持っていません。境界(最終的な変換は適用しました)をカラーで満たすために、このプロパティを使います。UseBackgroundColortrueでなければなりません。

UseBackgroundColor

変形されたデスティネーション四角形の背景を塗りつぶすために、BackgroundColorを使います。

重要な注意SvgDocumentがフラットでないか、有効な境界を格納しないならば、SvgDocument.Renderは例外をスローします。詳細な情報については、SVGのサイズ、領域およびフラットは照会します。

以下のcodeは、そのフラットと境界状態を自動的に確認することによってドキュメントを提出する方法を例示します:


             void RenderDocument(IRenderingEngine engine, SvgRenderOptions options, SvgDocument svgDocument)
             {
                // If the document is not flat, flatten it and automatically calculate its size
                if (!svgDocument.IsFlat)
                   svgDocument.Flat(null);
            
                // If the document does not have a valid bounds, calculate it now automatically
                var svgBounds = svgDocument.Bounds;
                if (!svgBounds.IsValid)
                   svgDocument.CalculateBounds(false);
            
                // Now, render the document
                svgDocument.Render(engine, options);
             }
             

Leadtools.Svg.SvgDocumentは、レンダリングをスピードアップする内部データ構造を作成します。このデータは、SvgDocument.BeginRenderOptimizeSvgDocument.EndRenderOptimizeを用いてキャッシュに格納されることができて、再利用されることができます。

Leadtools.Svg.SvgDocumentが一度提出されるならば、現状のまま最適化をそのままにすることは最善です。しかし、ドキュメント意志ならば、何度も提出されます(たとえば、それはImageViewerコントロールで表示されています、そして、速度を向上させるためにこのデータをキャッシュに格納することは、最善です。これは、ビューワでドキュメントを設定する前に、BeginRenderOptimizeを用いて簡単に達成されることができます。

BeginRenderOptimizeは、内部データで保存される追加のシステム資源を使うかもしれません。EndRenderOptimizeは、いつでも手動でこのデータを開放するのに用いられることができます。

BeginRenderOptimizeEndRenderOptimizeは、最適化の状態を追跡するために、内部のカウンターを使用します。BeginRenderOptimizeはこのカウンターをインクリメントします、そして、EndRenderOptimizeはそれをデクリメントしますので、最適化は必要に応じて実行されるだけです、そして、多くのBeginRenderOptimizeEndRenderOptimizeはドキュメントに影響を及ぼすことなく一緒に鎖でつながれることができます。

ドキュメントが破棄されるとき、この内部データはカウンターの値に関係なく自動的に開放されます。

ドキュメントがレンダリングデータを最適化したならば、決定するために、SvgDocument.IsRenderOptimizedを使います。

SVGの操作
SVGのサイズ、領域およびフラット