Scalable Vector Graphics

XMLに基づく2次元ベクターイメージ用の画像形式

これはこのページの過去の版です。Yukoba (会話 | 投稿記録) による 2008年7月25日 (金) 01:33個人設定で未設定ならUTC)時点の版 (ネイティブサポート)であり、現在の版とは大きく異なる場合があります。

Scalable Vector GraphicsSVG、スケーラブル ベクター グラフィックス)は、XMLによって記述されたベクターグラフィック言語のこと、あるいは、SVGで記述された画像フォーマットのこと。W3Cオープン標準として勧告されている。

Scalable Vector Graphics
拡張子 .svg
.svgz
MIMEタイプ image/svg+xml
開発者 World Wide Web Consortium
種別 ベクターグラフィック
派生元 XML
テンプレートを表示

沿革

1998年に発足したW3C SVGワーキンググループにより開発された。しかし、その時点で、マクロメディアマイクロソフトVMLアドビシステムズサン・マイクロシステムズPGMLとして知られている競合したフォーマットが提案されていた。

  • 2001年9月4日 - SVG 1.0がW3C勧告となる
  • 2003年1月14日 - SVG 1.1がW3C勧告となる
  • 2003年1月14日 - SVG TinyとSVG Basic(モバイルSVGプロファイル)がW3C勧告となる

SVG Tiny1.2は現在W3C勧告候補である。

特徴

XMLで記述するため、Webブラウザ上で閲覧でき、テキストエディタなどで編集することができる。またハイパーリンクを画像中に埋め込んだり、JavaScriptなどと連携させることもできる。ベクターグラフィックであるため、ベクターデータによる画面表示では拡大や縮小をしても描写の劣化が起きない。画像データの画面表示はWebブラウザのプラグインによって色調補完を行ないドット落ちを補正する機能を持つものがある。

編集

SVGは、拡張の自由度が高いXML (Extensible Markup Language) で記述されており、XMLならではの各種機能を定義した要素を持つ。SVGではそれ自身に回転・拡大・移動などの表現を定義しているため、単体で多様な表現をする事が可能である。

従来のウェブサイトでは、いわゆるインタラクティブな双方性のある画面変化を伴なう表示をJavaScriptやFLASHを用いてきた。HTML/XHTMLにSVGを組み合わせることにより、JavaScriptやFLASHを導入せずとも同様の効果が発揮される事が期待される。

XMLなので、専用のアプリケーションを用いることなくテキストファイルとして作製・編集できる。

レイヤー

 
ビットマップデータとベクターデータを拡大した場合

SVGの特筆すべき点としてレイヤー機能がある。SVGでは写真や挿絵などのビットマップデータ部分と座標値で指定された円・線分等を組み合わせた図形をベクターデータ部分として個々に指定でき、互いの苦手とする部分を補完しながら共存して画面表示できる。

  • ビットマップデータ: 写真・挿絵・統計グラフ
  • ベクターデータ: 円弧・線分・点・文字・統計グラフ

SVGでは文字をベクター情報の領域に有することで拡大縮小した際にはアウトラインフォントで表現する。この機能により文字を縮小した際に潰れたり、拡大するとジャギーと呼ばれる文字外延部のギザギザが生じて見難くなる点が解決されている。具体的には Adobe Acrobat による PDF 形式の文字とほぼ同じ機能を有する。

これらのレイヤー機能により、背景に写真などの画像を置き、ベクターデータによる線画や文字を配置させることが可能である。具体的には等高線を表示した地図画像(ビットマップ)の上に鉄道路線や道路網(ベクターデータ)を重ね、電車や自動車等の移動体を配置して同時表示が可能になる。更に、ベクターデータのみで表現した塗りつぶしでは色の重ね合わせが可能であり、塗りつぶしの透過度の指定により集合論で用いるベン図のような形体を必要最低限度の色数で表現できる。

ファイル形式

基本的に SVG は MIME 形式指定では image/svg+xml で指定された画像フォーマットである。ファイルの拡張子は .svg と gzip 圧縮された .svgz がある。拡張子 .svg はテキストファイルであるが故に大きなデータではネット間の通信トラフィックに於いてはデメリットが大きいが、圧縮した .svgz では数分の一のファイルサイズになる。展開機能はWebブラウザ側が受け持つ。

親和性

SVGは基本的にテキストファイルで構成されており、Webブラウザの利用者が入力した情報を CGI や Javascript を介してSVGデータに組み入れることが可能である。これにより、ベクターデータを用いた統計グラフでは可変性のある表示が可能になる。

長所

テキストデータで制作できるため、独自タグを用いることで高品質な表現が可能である。文字情報は文字データのみを明示的にグループ化しているため、文字のグループのみを抽出することで多言語化が比較的容易にできる。

欠点

ビットマップデータのファイルサイズは各ファイル形式によってある程度左右されるが、ほぼ面積比によってある程度のファイルサイズの中に納まることが多い。それに対して、ベクターデータは画面表示サイズに関わらず全ての情報を常に保持し続けるため、表示する情報が多い場合はビットマップデータよりもファイルサイズが大きくなる傾向がある。

規格の概要

  • SVG 1.1
  • SVG Tiny
  • SVG Basic
携帯電話PDAなどの携帯情報機器をターゲットにした軽量な規格。

現状

SVG は版を重ねるごとに高度な機能を盛り込んでいる。1.1版以降から、格納しようとするグラフィックス情報に当該情報が使用している座標参照系をメタデータとして記述することが可能となった。これにより、SVGを地図コンテンツとして利活用できる道ができ、国土地理院ではその保有する電子国土基幹情報をSVGで配信し、パソコンのみでなく広範なメディア上で活用する方法やアイデアを提案して広く社会実験に供する試みを実施している。

一方で、SVG の高度な機能を用いるものでは、それに対応した編集ツールや、データを忠実に再現してくれるビューワーやブラウザのプラグイン等が必須となる。高度な機能をもちつつも、それを活かせるインフラが追いついていないのが現状である。

これとは別に、比較的利用頻度の高い重要な機能に絞り込み、小型機器にも搭載可能な軽量な規格も登場している。

SVG編集ソフト

SVG は XML を用いているのでテキストエディタによるデータの作成も一応可能であるが、記述は非常に複雑なため実用的にはグラフィカルユーザインターフェースを前提にした編集ソフトが必須となる。

用途により、高度なグラフィクス作成に主眼を置いたグラフィックソフトから図、表、フローチャートなどの作成に主眼を置いたソフトまで幅がある。

SVG を標準データとして扱い、読み書きが可能なもの
SVG の読み書きが可能なもの
一部制限があるもの
  • GIMP - 読み込みに対応。書き出しはパスの書き出しのみ。
SVG の出力が可能なもの
  • 花子2006は、SVG(Ver.1.0に準拠)の書き出しをサポートする。
  • OpenOfficeDraw - 1.1までは日本語出力が一部乱れるなど難あり。2.0から書き出しをサポート。SVG Import Filterをインストールすれば読み込みも可能。
  • Omni GroupのOmniGraffle Professional 4は、SVG書き出しをサポートする。
  • R言語はデータ解析結果のグラフ出力形式としてSVGをサポートする。

このほかにも、CADソフトウエアには読み書きともに対応しているものが多く存在する。

ブラウザによるSVG画像の表示

現在、Internet Explorer以外のほぼ全てのパソコン用主要WWWブラウザでネイティブサポートされている。しかし未だに、Internet Explorerなどマイクロソフト社のレンダリングエンジンを持つブラウザではサポートされていない。これに対して、サードパーティーが提供するプラグインを用いることで、多少古い仕様ではあるが、SVG画像を表示させることができる。

プラグインサポート

ネイティブサポート

  • W3CのAmayaが標準でネイティブサポートしている。
  • Geckoブラウザでは、Firefox 1.5から対応している。
  • Operaは2005年4月に発表された Opera v8.0 で SVG Tiny に、2006年発表の v9.0 で SVG Basic に対応した。
  • KDEKonquerorKSVGを使って表示させることができる。
  • WebKitブラウザでは、Safari 3.0 から対応している。対応状況は OS ごとに大きく異なる。
    • Mac OS X - 現状の対応状況は、WebKit SVG Status
    • Windows - Safari 3.1.2 現在、フィルタなど一部の機能を実装してない。
    • Mobile - iPhone OS 2 の Mobile Safari は SVG に対応していない。

デスクトップ

GNU/Linux系などのUnixライクOSでは、Freedesktop.orgの標準に採用されるなど、様々な利用がされている。GNOMElibrsvgを使いアイコンや壁紙にSVGを利用できるし、またKDEではKSVGを利用してアイコンを表示できるほか3.4からはSVGを使った壁紙に対応した。

Windows系では2007年現在では特に動きはない。

関連項目

外部リンク