画像フォーマットの一つであるSVGファイルについて、基本的なポイントを整理ました。
大まかうに概要を掴むつもりで目を通していただければ幸いです。
Contents
SVGファイルとは
SVGファイルとは、Scalable Vector Graphics(スケーラブル・ベクター・グラフィックス)の略で、XMLベースのベクター画像フォーマットです。
拡張子は「.svg」で、Webサイトやアプリケーションで広く使用されています。
SVGは1999年にW3C(World Wide Web Consortium)によって開発され、現在ではすべての主要なWebブラウザでサポートされている標準的な画像形式です。
SVGの読み方
SVGは「エスブイジー」と読みます。
英語圏では各文字を「エス・ヴィー・ジー」と発音します。
SVG形式の特徴
SVG形式は以下の特徴を持つ画像ファイル形式です。
- ベクターデータ:数式で図形を表現するため、拡大縮小しても画質が劣化しない
- テキストベース:XMLで記述されているため、テキストエディタで編集可能
- 軽量:シンプルな図形であれば、ビットマップ画像よりファイルサイズが小さい
- 検索可能:テキスト情報を含むため、検索エンジンに認識される
- アニメーション対応:CSSやJavaScriptでアニメーションを追加できる
SVGのメリット・デメリット
SVGのメリット
- 解像度に依存しない
- どんなに拡大しても画質が劣化しない
- Retinaディスプレイなど高解像度画面でも鮮明に表示される
- レスポンシブデザインに最適
- ファイルサイズが小さい
- ロゴやアイコンなどシンプルな図形は非常に軽量
- Webサイトの読み込み速度向上に貢献
- 圧縮も可能でさらに軽量化できる
- 編集が容易
- テキストエディタで直接編集可能
- CSSで色やサイズを変更できる
- JavaScriptで動的に操作できる
- SEOに有利
- テキスト情報を含むため検索エンジンにインデックスされる
- alt属性やtitle属性を追加できる
- アクセシビリティが高い
- スクリーンリーダーに対応しやすい
- 拡大してもぼやけないため視認性が高い
SVGのデメリット
- 複雑な画像には不向き
- 写真のような複雑な画像はファイルサイズが大きくなる
- 細かいディテールの表現には限界がある
- 古いブラウザでは表示されない
- IE8以前など非常に古いブラウザはサポート外。(ただし現在はほぼすべてのブラウザで対応済み)
- レンダリングに負荷がかかる場合がある
- 非常に複雑なSVGや大量のSVGは処理が重くなる可能性がある
- セキュリティリスク
- JavaScriptを埋め込めるため、XSS攻撃のリスクがある
- 信頼できないソースからのSVGは注意が必要
SVGとPNGの違い
| 項目 | SVG | PNG |
|---|---|---|
| 形式 | ベクター | ラスター(ビットマップ) |
| 拡大時の画質 | 劣化しない | ぼやける |
| ファイルサイズ | シンプルな図形は小さい | 解像度に依存 |
| 適した用途 | ロゴ、アイコン、図形 | 写真、複雑な画像 |
| 編集 | テキストエディタで可能 | 画像編集ソフトが必要 |
| 透過 | 対応 | 対応 |
| アニメーション | CSS/JSで可能 | 不可(APNGを除く) |
| ブラウザ対応 | 現代のブラウザはすべて対応 | すべて対応 |
使い分けのポイント:
- ロゴ、アイコン、図形、イラスト → SVG
- 写真、複雑なグラデーション、細かいディテール → PNG/JPG
SVGファイルの作り方
デスクトップアプリやWebサービス上でSVGファイルの作成が可能です。
1. 「グラフィックソフト」で作成
Adobe Illustrator
- 業界標準のベクター編集ソフト
- 「ファイル」→「書き出し」→「SVGとして書き出し」で保存
- オプション設定で最適化が可能

Inkscape(無料)
- オープンソースのベクター編集ソフト
- Illustratorの代替として人気
- 「ファイル」→「名前を付けて保存」→「SVG」を選択
Figma / Sketch
- UI/UXデザインツール
- オブジェクトを選択して「Export」→「SVG」
Canva
- オンラインデザインツール
- 無料プランでもSVG出力可能(一部制限あり)
- 「ダウンロード」→「SVG」を選択
2. 「オンラインエディタ」で作成
オンラインエディタのメリット
- ブラウザ上で直接編集可能
- ソフトのインストール不要
- シンプルな図形作成に便利
オンラインツール
3. コードで直接作成
SVGはXMLベースなので、Visual Studio CodeやCursorなどテキストエディタで直接記述できます。
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<circle cx="100" cy="100" r="80" fill="#3498db" />
<rect x="60" y="60" width="80" height="80" fill="#e74c3c" />
</svg>See the Pen SVGー基本的な編集例 by naoq (@naoq) on CodePen.
4. 既存の画像を変換
- PNG/JPGからSVGへの自動変換ツールもありますが、品質は限定的
- ベクタートレース機能を使うとビットマップをベクター化できる
- Illustratorの「画像トレース」機能が高品質
SVGファイルの開き方・表示方法
Webブラウザで開く
最も簡単な方法は、SVGファイルをブラウザにドラッグ&ドロップすることです。
対応ブラウザ:
- Google Chrome
- Firefox
- Safari
- Microsoft Edge
- すべての現代的なブラウザ
SVGビューア(Windows)
Windows 11標準
- エクスプローラーでサムネイル表示可能
- フォトアプリで開ける
SVGビューア(Mac)
- Safari(標準ブラウザ)
- プレビュー.app(標準アプリ)
- Finder でQuick Look(スペースキー)
テキストエディタで開く
SVGはテキストファイルなので、以下のエディタで開けます:
- Visual Studio Code(拡張機能でプレビュー可能)
- Sublime Text
- Atom
- メモ帳
SVGが表示されない場合の対処法
- ファイルが破損していないか確認
- テキストエディタで開いて構文エラーをチェック
- XMLの閉じタグが正しいか確認
- ブラウザのキャッシュをクリア
- 古いキャッシュが原因の場合がある
- CORSエラーの確認
- ローカルファイルをブラウザで開く際に制限がある場合
- ローカルサーバーを立てて表示する
- viewBox属性の確認
- viewBoxが設定されていないと表示されない場合がある
- width/height属性も確認
SVGの基本的な使い方
HTMLに埋め込む方法
1. インラインSVG(推奨)
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" fill="blue" />
</svg>メリット:
- CSSで色やサイズを変更可能
- JavaScriptで操作可能
- HTTPリクエストが不要
2. imgタグで読み込む
<img src="logo.svg" alt="ロゴ" width="200">メリット:
- シンプルで分かりやすい
- キャッシュが効く
- 遅延読み込み(lazy loading)可能
3. CSSの背景画像として使用
.logo {
background-image: url('logo.svg');
background-size: contain;
background-repeat: no-repeat;
}4. objectタグで埋め込む
<object data="logo.svg" type="image/svg+xml"></object>メリット:
- SVG内のJavaScriptが動作する
- フォールバックコンテンツを指定可能(メインのコンテンツが何らかの理由で表示できなかった場合に、代わりに表示される「代替」コンテンツのことですね。)
SVGのサイズ変更
CSSでサイズ変更
svg {
width: 300px;
height: 300px;
}
/* レスポンシブ対応 */
svg {
width: 100%;
height: auto;
}HTML属性でサイズ変更
viewBoxで設定した内部の絵が、このwidthとheightに合わせて拡大・縮小されます。
<svg width="200" height="200" viewBox="0 0 100 100">
<!-- コンテンツ -->
</svg>viewBoxの活用
viewBoxを使うとアスペクト比を保ったまま拡大縮小できます。
<svg viewBox="0 0 100 100">
<!-- 100x100の座標系で描画 -->
</svg>背景を透過する
SVGはデフォルトで背景が透過されています。特別な設定は不要です。
背景色を付けたい場合:
<svg width="200" height="200">
<rect width="200" height="200" fill="white" />
<!-- その他の要素 -->
</svg>または、CSSで背景色を設定:
svg {
background-color: white;
}SVGの色を変更する
CSSで色変更(インラインSVGの場合)
svg path {
fill: #ff0000;
stroke: #0000ff;
}fill属性で色を指定
<circle fill="#3498db" />currentColorを使用
<svg>
<path fill="currentColor" />
</svg>svg {
color: red;/* この色が適用される */
}レスポンシブ対応
.svg-container {
width: 100%;
max-width: 500px;
}
.svg-container svg {
width: 100%;
height: auto;
}SVGファイルの編集
テキストエディタで編集
VSCodeなどのエディタでSVGファイルを開き、直接コードを編集できます。
基本的な編集例
<!-- 色を変更 -->
<circle fill="#ff0000" /> → <circle fill="#0000ff" />
<!-- サイズを変更 -->
<svg width="100" height="100"> → <svg width="200" height="200">
<!-- 位置を変更 -->
<rect x="10" y="10" /> → <rect x="20" y="20" />属性値を変更する事で色やサイズ、位置を変更できます。
グラフィックソフトで編集
Adobe Illustrator
- 最も高機能なSVG編集ツール
- 「ファイル」→「開く」でSVGを読み込み
- 通常のベクター編集が可能
Inkscape(無料)
- オープンソースの高機能エディタ
- Illustratorの代替として人気
- Windows/Mac/Linux対応
Figma
- ブラウザベースのデザインツール
- SVGをドラッグ&ドロップで読み込み
- 共同編集が可能
編集ツールの選び方
初心者向け
- Canva(オンライン、直感的)
- Vectr(オンライン、無料)
中級者向け
- Inkscape(無料、高機能)
- Figma(基本無料、チーム向け)
プロ向け
- Adobe Illustrator(有料、業界標準)
- Affinity Designer(最近無料に、高コスパ)
よくある編集作業
1. 色の変更
- fill属性を編集
- CSSで一括変更
2. サイズ調整
- width/height属性を変更
- viewBoxで比率を保持
3. パスの編集
- グラフィックソフトでアンカーポイントを操作
- パスデータを直接編集(上級者向け)
4. テキストの編集
- text要素を直接編集
- フォントはアウトライン化推奨
5. 最適化・軽量化
- SVGO(コマンドラインツール): Node.jsで動作する、SVGファイルを自動で最適化(軽量化)するためのコマンドラインツールです。
- SVGOMGオンライン版: Node.jsベースのSVG最適化ツールである「SVGO」に、GUI(グラフィカルな操作画面)をつけたものです。
- 不要なメタデータを削除
SVGファイルの変換
SVGからPNGへ変換
オンライン変換ツール
- CloudConvert
- Convertio
- SVG to PNG Converter
デザインソフトで変換
- Illustrator: 「書き出し」→「PNG」
- Inkscape: 「ビットマップとしてエクスポート」
ブラウザで変換
- SVGをブラウザで開く
- デベロッパーツールでスクリーンショット撮影
- または、ブラウザの印刷機能でPDF保存後にPNG変換
コマンドライン(上級者向け)
# ImageMagickを使用(インストール必要)
convert input.svg output.png
# Inkscapeを使用(インストール必要)
inkscape input.svg --export-png=output.pngImageMagick(イメージマジック)は、画像を扱うための強力なソフトウェア群(スイート)です。
SVGからJPGへ変換
基本的にPNG変換と同じ手順ですが、JPGは透過に非対応なので注意が必要です。
変換手順
- まずPNGに変換
- PNGからJPGに変換(画像編集ソフトやオンラインツール)
または、直接JPGに変換できるツールを使用:
- Illustrator
- オンライン変換サービス
SVGからPDFへ変換
方法1:ブラウザの印刷機能
- SVGをブラウザで開く
- 印刷(Ctrl+P / Cmd+P)
- 「PDFとして保存」を選択
方法2:Illustrator
- 「ファイル」→「別名で保存」→「PDF」
方法3:Inkscape
- 「ファイル」→「名前を付けて保存」→「PDF」を選択
PNGやJPGからSVGへ変換
ビットマップ画像からベクター画像への変換は品質が限定的です。
自動変換ツール
- Vector Magic(有料、高品質)
- Vectorizer.io(無料)
- Illustratorの画像トレース機能
⚠️注意点
- 複雑な画像は変換結果が粗くなる
- ロゴなどシンプルな図形が最適
- 手動でトレースする方が高品質
SVG変換ツール
無料ツール
- CloudConvert(オンライン)
- GIMP(デスクトップアプリ)
- Affinity Designer
有料ツール
- Adobe Illustrator(最高品質)
- CorelDRAW
SVGファイルの最適化・圧縮
なぜ最適化が必要か
デザインソフトから書き出したSVGには、不要な情報が含まれていることが多く:
- 非表示レイヤーのデータ
- メタデータやコメント
- 冗長な属性
- 小数点以下の不要な精度
これらを削除することで、ファイルサイズを30〜70%削減できます。
SVGO(推奨ツール)
オンライン版:SVGOMG
- https://jakearchibald.github.io/svgomg/
- ブラウザで使える
- 設定をビジュアルで確認しながら最適化
コマンドライン版
# インストール
npm install -g svgo
# 最適化実行
svgo input.svg -o output.svg最適化のポイント
- 小数点の精度を下げる
- デフォルトの精度は過剰なことが多い
- 視覚的に変化がない範囲で削減
- 不要な属性を削除
- id属性(使用していない場合)
- データ属性
- デフォルト値
- パスを最適化
- 冗長なパスコマンドを簡略化
- 小さな値をまるめる
- 色の表記を短縮
#ffffff→#fffrgb(255,255,255)→#fff
⚠️注意点
- アニメーションで使用するid属性は保持する
- JavaScriptで操作する要素は保持する
- 過度な最適化は可読性を損なう
まとめ
SVGファイルは、Webデザインやアプリ開発において非常に重要な画像形式です。
SVGの主なポイント:
- ベクター形式で拡大しても画質が劣化しない
- ファイルサイズが小さく、Webサイトの高速化に貢献
- CSSやJavaScriptで動的に操作できる
- ロゴ、アイコン、図形に最適
SVGを使うべきシーン:
- Webサイトのロゴ
- UIアイコン
- インフォグラフィック
- 図表やグラフ
- イラスト(シンプルなもの)
PNGを使うべきシーン:
- 写真
- 複雑なグラデーション
- 細かいテクスチャ
SVGを適切に活用することで、美しく高速なWebサイトを構築できます。まずは簡単なアイコンやロゴから始めて、徐々に高度な使い方にチャレンジしてみましょう。


























