TECH I.S.

HTMLSVGグラフィック


SVGは、ベクトルベースのグラフィックスをXML形式で定義します。


SVGとは?

  • SVGはスケーラブルベクターグラフィックスの略です
  • SVGはWeb用のグラフィックを定義するために使用されます

HTML<svg>要素

HTML<svg>要素は、SVGグラフィックのコンテナです。

SVGには、パス、ボックス、円、テキスト、およびグラフィックイメージを描画する方法がいくつかあります。


ブラウザのサポート

表の番号は、<svg>要素を完全にサポートする最初のブラウザーバージョンを示しています。


要素

<svg> 4.0 9.0 3.0 3.2 10.1

SVGサークル


<!DOCTYPE html> <html> <body> <svg width="100" height="100">   <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" /> </svg> </body> </html>


SVG長方形



<svg width="400" height="100">   <rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" /> </svg>


SVG角丸長方形

お使いのブラウザはインラインSVGをサポートしていません。

<svg width="400" height="180">   <rect x="50" y="20" rx="20" ry="20" width="150" height="150"   style="fill:red;stroke:black;stroke-width:5;opacity:0.5" /> </svg>


SVGスター

申し訳ありませんが、お使いのブラウザはインラインSVGをサポートしていません。

<svg width="300" height="200">   <polygon points="100,10 40,198 190,78 10,78 160,198"   style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" /> </svg>


SVGロゴ

SVGお使いのブラウザはインラインSVGをサポートしていません。

<svg height="130" width="500">   <defs>     <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">       <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />       <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />     </linearGradient>   </defs>   <ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad1)" />   <text fill="#ffffff" font-size="45" font-family="Verdana" x="50" y="86">SVG</text>   Sorry, your browser does not support inline SVG. </svg>


SVGとキャンバスの違い

SVGは、2DグラフィックスをXMLで記述するための言語です。

Canvasは、オンザフライで(JavaScriptを使用して)2Dグラフィックスを描画します。

SVGはXMLベースです。つまり、すべての要素がSVGDOM内で利用可能です。要素にJavaScriptイベントハンドラーをアタッチできます。

SVGでは、描画された各形状はオブジェクトとして記憶されます。SVGオブジェクトの属性が変更された場合、ブラウザは形状を自動的に再レン​​ダリングできます。

キャンバスはピクセルごとにレンダリングされます。キャンバスでは、一度グラフィックが描画されると、ブラウザはそれを忘れます。その位置を変更する必要がある場合は、グラフィックで覆われている可能性のあるオブジェクトを含め、シーン全体を再描画する必要があります。


キャンバスとSVGの比較

次の表は、CanvasとSVGの重要な違いを示しています。


キャンバス SVG
  • 解像度に依存
  • イベントハンドラーのサポートなし
  • テキストレンダリング機能が弱い
  • 結果の画像は.pngまたは.jpgとして保存できます
  • グラフィックを多用するゲームに最適
  • 解像度に依存しない
  • イベントハンドラーのサポート
  • 大きなレンダリング領域を持つアプリケーションに最適(Google マップ)
  • 複雑な場合はレンダリングが遅くなります(DOMを頻繁に使用するものはすべて遅くなります)
  • ゲーム用途には不向き

SVGチュートリアル

SVGについて詳しくは、SVGチュートリアルをお読みください。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細