Scalable Vector Graphics
Scalable Vector Graphics(スケーラブル・ベクター・グラフィックス、SVG、日: 変倍ベクタ図形[2][3])は、XMLベースの、2次元ベクターイメージ用の画像形式の1つである。アニメーションやユーザインタラクションもサポートしている。SVGの仕様はW3Cによって開発され、オープン標準として勧告されている。
![]() | |
拡張子 | .svg 、.svgz |
---|---|
MIMEタイプ | image/svg+xml [1] |
UTI | public.svg-image |
開発者 | W3C |
初版 | 2001年9月4日 |
最新版 | 1.1 (Second Edition) (2011年8月16日 ) |
種別 | ベクターグラフィック |
派生元 | XML |
オープン フォーマット | Yes |
ウェブサイト | W3C SVG Working Group |
概要
編集1998年にアドビシステムズ・IBM・ネットスケープコミュニケーションズの3社によって提案されたPGML(Precision Graphics Markup Language)[4]と、Autodesk・ヒューレット・パッカード・Macromedia・マイクロソフト・Visio の5社によって提案された VML (Vector Markup Language)[5]をもとにして、W3C SVG ワーキンググループにより開発された[6]。
沿革
編集特徴
編集ベクタ形式であるため、拡縮自在である。その他に、XMLベースの為、ウェブブラウザで(画像として、という意味ではなく、HTMLのソースビュー等と同様に、という意味で)閲覧でき、テキストエディタ等で編集できる。また、HTMLとの親和性により、ハイパーリンクを埋め込んだり、JavaScript 等と連携させることもできる。
編集
編集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 は基本的に文章で構成されており、ブラウザの利用者が入力した情報を CGI や JavaScript を介して SVG データに組み入れることが可能である。これにより、ベクターデータを用いた統計グラフでは可変性のある表示が可能になる。
長所
編集文書で制作できるため、独自タグを用いることで高品質な表現が可能である。文字情報は文字データのみを明示的にグループ化しているため、文字のグループのみを抽出することで多言語化が比較的容易にできる。
欠点
編集ビットマップデータの大きさは各形式によってある程度左右されるが、ほぼ面積比によってある程度のサイズに納まることが多い。それに対し、ベクターデータは画面表示サイズに関わらず全ての情報を常に保持し続けるため、表示情報が多い場合はビットマップデータよりもサイズが大きくなる傾向がある(ただし、これはベクターデータ形式全般に言えるものであり、SVG のみの欠点ではない)。
規格の概要
編集現状
編集SVG は版を重ねるごとに高度な機能を盛り込んでいる。1.1 版以降から、格納しようとする描画情報に当該情報が使用している座標参照系をメタデータとして記述することが可能となった。これにより、SVG を地図として利活用できる道ができ、国土地理院ではその保有する電子国土基幹情報を SVG で配信し、PC のみならず様々な媒体で活用する方法を提案して広く社会実験に供する試みを実施している。
一方で、SVG の高度な機能を用いるものでは、それに対応した編集ツールや、データを忠実に再現してくれるビューアやブラウザのプラグイン等が必須となる。高度な機能を持ちつつも、それを活かせるインフラが追いついていないのが現状である。
これとは別に、比較的利用頻度の高い重要な機能に絞り込み、小型機器にも搭載可能な軽量な規格も登場している。
日本産業規格
編集JIS X 4197:2012「可変ベクタグラフィクス SVG Tiny1.2」としてW3C発行のSVG Tiny 1.2規格を技術的内容を変更することなく邦訳した規格表が発行されている(2012年最終改訂)[13]。
SVG 編集ソフト
編集SVG は XML を用いているのでテキストエディタによるデータの作成も一応可能であるが、記述は非常に複雑なため実用的には GUI を前提にした編集ソフトが必須となる。
用途により、高度なグラフィクス作成に主眼を置いた描画ソフトから図、表、フローチャートなどの作成に主眼を置いたソフトまで幅がある。
- SVG を標準データとして扱い、読み書きが可能なもの
-
- SVG Cats
- Inkscape
- SVG の読み書きが可能なもの
-
- Adobe Illustrator
- Microsoft Office Visio
- Microsoft Officeのうち、Word、Excel、PowerPoint、Outlook[14][15]。
- CorelDRAW
- Affinity Designer
- Justsystems Xfy
- Dia
- Mathematica
- LibreOffice Draw
- Googleドキュメント
- 一部制限があるもの
-
- GIMP - 読み込みに対応。書き出しはパスの書き出しのみ。
- SVG の出力が可能なもの
-
- 花子2006は、SVG (Ver.1.0 に準拠) の書き出しに対応。
- OpenOffice Draw - 1.1 までは日本語出力が一部乱れるなど難あり。2.0 から書き出しに対応。SVG Import Filter(アーカイブ)[16]を導入すれば読み込みも可能。
- Omni GroupのOmniGraffle Professional 4 は、SVG 書き出しに対応。
- R はデータ解析結果のグラフ出力形式として SVG に対応。
- Gnuplot および GNU Plotutils は、プロットの出力形式として SVG に対応。
- Geometry Expressions は、図形の出力形式として SVG に対応。
この他、CAD ソフトウエアには読み書きともに対応しているものが多く存在する。
ウェブブラウザによる SVG 画像の表示
編集2010年代にはパソコン用の主要ウェブブラウザでネイティブサポートされるようになった。
2018年5月時点で[17]、HTML標準の仕様ではSVG 2を参照している。さらに、SVGを実装するならそれ以前のバージョンではなくSVG 2を実装しなければならないと規定されている[18]。
ネイティブサポート
編集- Internet Explorer - Internet Explorer 9からSVG 1.1に標準対応[19]。
- Mozilla Firefox - 1.5から対応。
- Google Chrome - 最初のバージョンから対応。
- Android標準ブラウザ - Android 3.0から対応。
- Safari - Safari 3.0からSVG 1.1に完全ではないが対応[20]。対応状況は環境毎に異なる。
- OS X - バージョン 3.1.2の時点で、カラープロファイルなど一部機能を未実装。現状の対応状況は、WebKit SVG Status。
- iOS - iPhone OS 2.1のMobile SafariでSVGに対応した。
- Windows - Safari 3.1.2現在、フィルタなど一部の機能を除いて、実装している。
- OperおよびOpera Mobile - 2005年4月に発表された Opera v8.0でSVG Tinyに、2006年発表のv9.0でSVG Basicに対応した。
- Opera Miniは5から対応。
- NetFront Browser - 未対応。
- KDE Konqueror - KSVGを使って表示させることができる。
- W3C Amaya - 標準対応。
プラグインサポート
編集Internet Explorer 8以前のIEや、そのレンダリングエンジンを用いているブラウザなどにおいては、第三者製のプラグインを用いることで、SVG 画像を表示させる必要があった。
- Adobe - Adobe SVG Viewer。Internet Explorer や Netscape 向け。2009年1月1日にサポートを終了と発表した[21]。
- Corel - Corel SVG Viewer
- GNOME - Mozilla 向けにプラグインの librsvg
- Examotion(開発元が Emia Systems から移った) - Renesis Player
デスクトップ
編集GNU/Linuxなどの Unix系オペレーティングシステム (OS) では、Freedesktop.org の標準に採用されるなど、様々な利用がされている。GNOME は librsvg を使いアイコンや壁紙に SVG を利用でき、また、KDE では KSVG を利用してアイコンを表示できるほか 3.4 からは SVG を使った壁紙に対応した。
Windows 系では2007年現在では特に動きはない。
脚注
編集出典
編集- ^ “Media Type Registration for image/svg+xml”. W3C. 2019年9月1日閲覧。
- ^ JIS TR X 0095 2003.
- ^ 小町 2008.
- ^ “Precision Graphics Markup Language (PGML)”、World Wide Web Consortium、1998年4月10日
- ^ “VML - the Vector Markup Language”、World Wide Web Consortium、1998年5月13日
- ^ 「W3C、Web上でベクターグラフィックを表示する「SVG」のドラフトを公開」『INTERNET Watch』、インプレス、1999年2月12日
- ^ “W3C Working Draft: Scalable Vector Graphics (SVG)”、World Wide Web Consortium、1999年2月11日
- ^ “Scalable Vector Graphics (SVG) 1.0 Specification”、World Wide Web Consortium、2001年9月4日
- ^ a b “Scalable Vector Graphics (SVG) 1.1 (Second Edition)”、World Wide Web Consortium、2011年8月16日
- ^ “Mobile SVG Profiles: SVG Tiny and SVG Basic”、World Wide Web Consortium、2003年1月14日
- ^ “Scalable Vector Graphics (SVG) Tiny 1.2 Specification”、World Wide Web Consortium、2008年12月22日
- ^ “Scalable Vector Graphics (SVG) 2”、World Wide Web Consortium、2018年10月4日
- ^ JIS X 4197
- ^ “Microsoft Office で SVG 画像を挿入する”. Office のサポート. 2017年2月19日閲覧。
- ^ 若杉紀彦 (2016年10月27日). “OfficeアプリがIllustratorなどのSVG画像の挿入/編集に対応 ~無償のSVGアイコンライブラリも提供”. PC Watch. Impress Watch. 2017年2月19日閲覧。
- ^ SVG Import Filterのアーカイブ版はVersion 1.2.2 (2007-09-02) 以降、アップデートされていない。(アーカイブ版に更新日時:~~~~~)
- ^ “Update to reference SVG 2 by dstorey · Pull Request #3692 · whatwg/html”. GitHub (2018年5月18日). 2019年5月4日閲覧。
- ^ “HTML Standard 2.1.9 Dependencies” (英語). HTML Standard (2019年5月3日). 2019年5月4日閲覧。 “User agents that implement SVG must implement the SVG 2 specification, and not any earlier revisions.”
- ^ SVG in IE9 Roadmap - Internet Explorer ブログ (日本語版)
- ^ The official WebKit SVG status page
- ^ [1]
参考文献
編集- JIS TR X 0095:2003「変倍ベクタ図形 (SVG) 1.0」(日本産業標準調査会、経済産業省) - SVG 1.0仕様の日本語訳 (TR)
- 小町 祐史「マーク付け言語関連規定のこれまでの議論と今後の展望」『情報知識学会誌』第18巻第4号、情報知識学会、2008年11月29日、323-333頁、doi:10.2964/jsik.3、2019年8月26日閲覧。
- 高木 悟『SVGによるオープンなWeb Mapプラットホームの動向』(PDF)(レポート)KDDI、2008年10月10日 。2019年8月26日閲覧。
関連項目
編集- Adobe Flash (Macromedia Flash)
- Apache Batik
- Canvas要素
- Commons:SVG変換
- Comparison of layout engines (SVG)
- Computer Graphics Metafile (CGM)
- Direct2D
- Extensible Markup Language (XML)
- 地理情報システム
- List of vector graphics editors
- List of vector graphics markup languages
- PostScript (PS)- ベクタ形式の画像フォーマット
- Encapsulated PostScript (EPS) - ベクタ形式の画像フォーマット
- Raster to vector
- Resolution independence
- SVG animation
- SVG Working Group
- SVG's XML Binding Language
- WYSIWYG
- Windows Metafile (WMF, EMF) - ベクタ形式の画像フォーマット
- ビットマップ画像(ラスターグラフィック)
- ベクターイメージ
外部リンク
編集- W3C の SVG 公式サイト
- Scalable Vector Graphics (SVG) 2 - SVG 2の規格書
- SVG: Scalable Vector Graphics - Mozillaによる、ウェブ開発者向けの説明