HTML5 CANVAS vs. SVG:どちらを選択できますか?
![Canvas vs SVG: Choosing the Right Tool for the Job](https://img.php.cn/upload/article/000/000/000/173916865262693.jpg)
HTML5キャンバスとSVGはどちらも、見事なグラフィックと視覚効果を作成するために使用できる標準のHTML5テクノロジーに基づいています。この記事では、重要な質問について説明します。どのテクノロジーがプロジェクトで選択するのに適していますか?言い換えれば、どの場合にSVGよりもHTML5キャンバスを使用する傾向がありますか?
最初に、HTML5キャンバスとSVGを簡単に紹介しましょう。
キーポイント
- HTML5キャンバスとSVGはどちらもグラフィカルな経験と視覚的な経験を作成するために使用されるHTML5テクノロジーです。 Canvasは解像度に依存しており、グラフィック、ゲームグラフィック、アートワーク、またはその他の視覚画像を動的にレンダリングするために使用されます。 SVG(Scalable Vector Graphics)は、スケーリング時に品質を維持するXMLファイル形式です。
- HTML5キャンバスとSVGは完全に異なって動作します。 Canvasは、ピクセルが描画されると破棄されるインスタントグラフィックシステムです。 SVGは保持モードを採用します。ここでは、描画されたすべてのオブジェクトがブラウザの内部モデルに追加されます。これは、開発者にとって簡単ですが、パフォーマンスに影響を与える可能性があります。
- HTML5 Canvasは、グラフィックスオーバー型の非常にインタラクティブなゲーム、生成的なアート、および小さな表面に描画する必要がある多くのオブジェクトがあるシーンに最適です。ただし、Retinaディスプレイにズームインまたは表示すると、その品質が低下する場合があります。
SVGは、スケーラビリティを必要とするシナリオ(高い忠実度、建築およびエンジニアリング図面などの複雑なグラフィック、生物学的図面、組織図面など)に適しています。 SVGは、人間や機械が読むことができるため、アクセシビリティの点でも優れています。 -
高度なシナリオのために、
HTML5キャンバスとSVGを組み合わせることができます。たとえば、キャンバスベースのゲームでは、SVGイメージをSPRITZとして使用できます。また、描画プログラムでは、SVGを使用してユーザーインターフェイスを設計し、描画用のキャンバス要素を埋め込みます。 -
HTML5キャンバスとは何ですか?
whatwg仕様では、次のようにキャンバス要素を導入します
Canvas要素は、スクリプトにグラフ、ゲームグラフィック、アートワーク、またはその他の視覚画像をその場でレンダリングするための解像度依存のビットマップキャンバスを提供します。
言い換えれば、
タグは、JavaScriptプログラム可能なインターフェイスを使用して、ピクセルごとにラスター画像を作成および操作できる表面を提供します。
これは基本的なコードの例です。<canvas></canvas>
(基本的なキャンバスの形状を示すために、Codepenの例をここに埋め込む必要があります)
解像度の依存性により、
に作成された画像は、網膜ディスプレイにズームインまたは表示すると品質を低下させる場合があります。
単純な形状を描くことは、氷山の一角にすぎません。 HTML5 Canvas APIを使用すると、アーク、パス、テキスト、グラデーションなどを描画できます。 Pixelごとに画像Pixelを操作することもできます。これは、グラフィックの特定の領域の色を交換し、図面をアニメーション化し、ビデオをキャンバスに描画して外観を変更できることを意味します。 <canvas></canvas>
svgとは何ですか?
SVGはスケーラブルベクトルグラフィックスを表します。仕様に応じて:
SVGは、2次元グラフィックを記述するために使用される言語です。スタンドアロン形式として使用する場合、または他のXMLと混合した場合、XML構文を使用します。 HTML5と混合すると、HTML5構文...
を使用します
SVG図面はインタラクティブでダイナミックにできます。アニメーションは、宣言的手段(つまり、SVGコンテンツにSVGアニメーション要素を埋め込むことによって)またはスクリプトを介して定義およびトリガーできます。
SVGは、ベクトルグラフィックスの作成に使用されるXMLファイル形式です。スケーラブルな特性により、明確さと高品質を維持しながら、ベクター画像を増加または減少させることができます。 (HTML5キャンバス生成画像はこれを行うことはできません)。
以下は、SVG(以前にHTML5キャンバスを使用して作成された)を使用して描かれた同じ赤い正方形です。
(基本的なSVG形状を示すためにCodepenの例をここに埋め込む必要があります)
以上がCanvas vs SVG:ジョブに適したツールを選択するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。