HTML5 Canvas vs. SVG

2303 ワード

CanvasとSVGでは、ブラウザでグラフィックを作成できますが、根本的には異なります.
SVG
SVGはXMLを用いて2 Dグラフィックを記述する言語である.
SVGはXMLに基づいており、これはSVG DOMの各要素が利用可能であることを意味する.要素にJavaScriptイベントプロセッサを追加できます.
SVGでは、各描画された図形がオブジェクトとして扱われる.SVGオブジェクトのプロパティが変化すると、ブラウザは自動的にグラフィックを再生することができます.
Canvas
CanvasはJavaScriptで2 Dグラフィックを描きます.
Canvasはピクセル単位でレンダリングされます.
canvasでは、グラフィックが描画されると、ブラウザの注目を集めることはありません.位置が変化した場合は、グラフィックで上書きされている可能性のあるオブジェクトを含め、シーン全体を再描画する必要があります.
CanvasとSVGの比較
次の表に、canvasとSVGの違いを示します.
Canvas
依存解像度イベントプロセッサはサポートされていません
弱いテキストレンダリング機能ことができる.pngまたは.jpg形式保存結果画像画像密集型のゲームに最適で、多くのオブジェクトが頻繁に再描画されます.
SVG
非依存解像度イベントプロセッサをサポート
大規模なレンダリング領域を持つアプリケーション(Googleマップなど)に最適
複雑度が高いとレンダリング速度が遅くなります(DOMを過度に使用するアプリケーションは速くありません)ゲームアプリケーションには適していません 
HTML 5は、インラインSVGをサポートしています.
SVGとは?
SVGとは、スケーラブルベクトルパターン(Scalable VectorGraphics)を指す.
SVGは、ネットワークのためのベクトルベースパターンを定義するためのものである.
SVGは、XML形式でグラフィックを定義する
SVG画像は、サイズを拡大または変更する場合に、そのグラフィック品質に損失を与えることはない.
SVGは、ユニバーサル・ネットワーク・アライアンスの標準である.
SVGのメリット
他の画像フォーマット(JPEGやGIFなど)と比較して、SVGを使用する利点は次のとおりです.
SVG画像は、テキストエディタによって作成および修正することができる.
SVG画像は、検索、インデックス、スクリプト化、または圧縮することができる.
SVGは伸縮可能なである.
SVG画像は、任意の解像度で高品質に印刷することができる.
SVGは、画像品質が低下ことなくに拡大することができる.
ブラウザのサポート
Internet Explorer 9、Firefox、Opera、Chrome、SafariはインラインSVGをサポートしています.
SVGをHTMLページに直接埋め込む
HTML 5では、SVG要素をHTMLページに直接埋め込むことができます.
≪インスタンス|Instance|emdw≫
<!DOCTYPE html>
<html>
<body>

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="190">
  <polygon points="100,10 40,180 190,60 10,60 160,180"
  style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>

</body>
</html>

みずからやってみる
結果:
SVGに関する詳細については、SVGチュートリアルを参照してください.