Scalable Vector Graphics

SVGファイル形式(.svg)完全ガイド

SVGとは何か?概要と歴史

SVG(Scalable Vector Graphics)は、XMLベースの2次元ベクターグラフィック形式です。ラスター画像(ピクセルの集合)とは異なり、SVGは数学的な図形・曲線・テキストの定義によって画像を表現します。そのため、どんな解像度に拡大・縮小しても画質が劣化しないという大きな特徴を持っています。

SVGの歴史は1990年代後半に遡ります。World Wide Web Consortium(W3C)が1998年にSVGの仕様策定を開始し、2001年にSVG 1.0が正式勧告として公開されました。その後、2003年にSVG 1.1がリリースされ、モバイル向けの「SVG Tiny」や「SVG Basic」といったサブセットも定義されました。2011年にはSVG 1.1の第2版が公開され、現在最も広く利用されているバージョンとなっています。また、より高機能なSVG 2.0の仕様策定も進められており、CSSやHTMLとの統合がさらに深まっています。

SVGはWebブラウザのネイティブサポートが充実しており、現在ではすべての主要ブラウザでSVGの表示が可能です。ロゴ、アイコン、インフォグラフィック、地図など、さまざまな用途で活用されています。

技術仕様

SVGは他の画像形式と比較して独自の技術的特性を持っています。以下に主要な仕様をまとめます。

  • ファイル形式:XMLテキスト形式。テキストエディタで直接内容を確認・編集可能です。
  • 圧縮:SVGファイル自体は非圧縮のテキストですが、GZIP圧縮を適用したSVGZ(.svgz)形式も存在し、ファイルサイズを大幅に削減できます。
  • 解像度:ベクターデータのため、解像度に依存しません。印刷用途からスマートフォンの高解像度ディスプレイまで、あらゆる環境で鮮明な表示が可能です。
  • カラーサポート:RGB、RGBA、HSL、HEXなどの色指定をサポートしています。また、グラデーションやパターン塗りつぶしも標準仕様に含まれています。
  • 透明度:アルファチャンネルによる透明度表現に対応しており、複雑な透過効果も実装できます。
  • アニメーション:SMIL(Synchronized Multimedia Integration Language)を使ったネイティブアニメーションや、CSSアニメーション、JavaScriptによる動的操作が可能です。
  • フィルター効果:ぼかし、影、カラーマトリクスなどのフィルター効果をXMLで定義できます。
  • テキスト埋め込み:テキスト要素をそのまま含められるため、検索エンジンのインデックスやアクセシビリティ対応が容易です。
  • MIMEタイプ:image/svg+xml

主な用途

SVGはその特性から、以下のような場面で広く活用されています。

  • Webサイトのロゴ・アイコン:あらゆる画面解像度で鮮明に表示されるため、ブランドアイデンティティを一貫して表現できます。
  • インフォグラフィック・チャート:データビジュアライゼーションツール(D3.jsなど)がSVGを出力形式として採用しています。
  • 地図・フロアプラン:ズームやパンに対応した高品質な地図表示に最適です。
  • UIコンポーネント:ボタン、バッジ、アイコンセットなど、レスポンシブデザインに欠かせない素材として使用されます。
  • 印刷物・出版:IllustratorなどのDTPソフトウェアとの互換性があり、高品質な印刷物の制作に利用されます。
  • ゲーム・インタラクティブコンテンツ:CSSやJavaScriptと組み合わせたアニメーションや、インタラクティブな操作が可能です。

SVGのメリットとデメリット

SVGは多くの強みを持つ一方、特定の用途には向かない場合もあります。以下の比較表を参考にしてください。

メリット デメリット
拡大・縮小しても画質が劣化しない 写真など複雑なラスター画像の表現には不向き
テキストベースのため、ファイルサイズが小さくなる場合がある 複雑なパスや要素が多いとファイルサイズが大きくなる
CSSやJavaScriptで動的に操作できる 複雑なSVGはレンダリング負荷が高くなることがある
検索エンジンがテキストコンテンツをインデックス可能 悪意あるスクリプトが埋め込まれるセキュリティリスクがある
アニメーション・インタラクションが容易 古いブラウザや一部環境では完全に対応していない場合がある
すべての主要ブラウザでネイティブサポート フォントの扱いが環境によって異なる場合がある

SVGファイルを開く・表示するには

SVGファイルはさまざまなアプリケーションで開くことができます。用途に応じて最適なソフトウェアを選びましょう。

  • Webブラウザ:Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safariなど、すべての現行ブラウザでSVGをそのまま表示できます。
  • Adobe Illustrator:プロフェッショナルなベクターグラフィック編集ソフト。SVGの読み込み・編集・書き出しに完全対応しています。
  • Inkscape:無料・オープンソースのベクターグラフィックエディター。SVGをネイティブ形式としてサポートしており、高度な編集が可能です。
  • Figma:Webベースのデザインツール。SVGのインポート・エクスポートをサポートし、チームでの共同作業に適しています。
  • Adobe XD:UIデザイン・プロトタイピングツール。SVGの扱いに長けています。
  • Affinity Designer:Adobe Illustratorの代替として人気のあるベクターグラフィックソフト。SVGへの完全対応が特徴です。
  • テキストエディター(VS Code、Notepad++など):SVGはXMLテキストのため、コードとして直接編集できます。
  • CorelDRAW:幅広いベクター形式に対応したグラフィックスイート。SVGの編集もサポートしています。

SVGファイルをオンラインで変換するには

SVGを別の形式に変換したい場合、あるいは他の形式のファイルをSVGに変換したい場合には、オンライン変換ツールが便利です。Metric Converter(metric-converter.com)では、SVGをPNG、JPG、WebP、PDFなど多様な形式に変換したり、逆にPNGやJPGからSVGへの変換もブラウザ上で簡単に行えます。ソフトウェアのインストールは不要で、ファイルをアップロードするだけで変換が完了します。

変換時には、透明度の保持やファイルサイズ、出力品質などを考慮した形式を選ぶことが重要です。たとえばWebで写真と組み合わせて使用する場合はPNG、文書に挿入する場合はPDFへの変換が適しています。

よくある質問(FAQ)

SVGとPNGはどちらを使うべきですか?

ロゴ、アイコン、図形など拡大縮小が必要なグラフィックにはSVGが最適です。一方、写真や複雑な色調のグラデーションを含む画像はPNGまたはJPGが適しています。WebでのアイコンやバナーにはSVGを積極的に活用することで、高解像度ディスプレイでも鮮明な表示が実現します。

SVGファイルはセキュリティ上の問題がありますか?

SVGはXMLテキストのため、悪意あるJavaScriptやリンクを埋め込むことが可能です。信頼できないソースから取得したSVGファイルをWebサイトに直接埋め込む場合は、サニタイズ処理を行うことが推奨されます。ブラウザで単に表示する分には一般的に問題ありませんが、ユーザーがアップロードしたSVGを処理するシステムでは注意が必要です。

SVGファイルのサイズを小さくするにはどうすればよいですか?

SVGの最適化には、SVGO(SVG Optimizer)などのツールが有効です。不要なメタデータ、コメント、冗長なパスデータを削除することでファイルサイズを大幅に削減できます。また、GZIPまたはBrotli圧縮を適用してSVGZとして配信する方法もあります。WebサーバーでGZIP圧縮を有効にしているだけでも、SVGの転送サイズを70〜80%削減できる場合があります。

SVGはすべてのブラウザで表示できますか?

現在のすべての主要ブラウザ(Chrome、Firefox、Edge、Safari)はSVGをネイティブサポートしています。Internet Explorer 9以降でも基本的なSVG表示は可能ですが、アニメーションやフィルターなど高度な機能は対応していない場合があります。Internet Explorer 8以前はSVGをサポートしていないため、古いブラウザへの対応が必要な場合はPNGのフォールバックを用意することが推奨されます。