ひとことで言うと
SVG(Scalable Vector Graphics)はXML形式で書かれたベクター画像で、どんな解像度・サイズで表示してもエッジがぼけません。PNGが「ピクセルの集合」であるのに対し、SVGは「形の数式」を保存しているため、スマートフォンの高解像度ディスプレイでも4Kモニターでも同じ鮮明さで表示されます。
AIが生成するロゴやアイコンはSVG形式で出力されることが多く、そのままHTMLの`<img>`タグや`<svg>`インライン要素として使えます。ファイルサイズも単純な図形なら数KB以下に収まるため、共有するHTMLのトータルサイズを小さく保てます。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
HTML共有で関係する場面
提案書HTMLにSVGのロゴを埋め込んで共有した場合、受け取った相手がファイルを印刷しても画質が劣化しません。PNGロゴを使っていると拡大印刷でジャギーが目立つことがありますが、SVGなら印刷時に自動的に最高解像度で出力されます。ブランドの信頼性を保つ意味でもロゴはSVGを使うことを推奨します。
SVGを`<img src="logo.svg">`として参照する場合、HTMLとSVGファイルが同じフォルダに入ったZIPで共有しなければ表示されません。一方でSVGをHTMLに直接`<svg>...</svg>`としてインライン記述すれば、HTMLファイル1枚だけで完結します。インライン化はギガサイト便などの1ファイル共有との相性が非常によいです。
よくある誤解
「SVGはすべての画像に使える」は誤りです。写真や複雑なグラデーションをSVGで表現しようとすると、パスデータが膨大になりファイルサイズがJPEGやWebPの何倍にもなります。SVGが適しているのはロゴ・アイコン・シンプルなイラスト・図表などの几何学的な形状であり、写真はWebPやAVIFを使うべきです。
「SVGはHTMLに埋め込んでも安全」という前提は危険です。SVGはXMLの一種であり、スクリプトを内部に含められます。外部から受け取ったSVGファイルをそのままインライン展開すると、埋め込まれたJavaScriptが実行されるXSSリスクがあります。信頼できないソースのSVGをHTMLに直接貼り込む際はサニタイズが必要です。
安全に使うための注意点
AIが生成したSVGをHTMLにインライン展開する前に、SVGのソース内に`<script>`タグや`on*`イベント属性(例:`onclick`・`onload`)が含まれていないか確認してください。テキストエディタでSVGを開いてscriptとonで検索するだけでチェックできます。万一含まれていれば、その行を削除してから貼り付けてください。
外部URLを参照するSVGフィルタ(例:`<feImage href="https://...">`)が含まれていると、そのURLに対しページを開いた時点でリクエストが発生します。社外共有するHTMLに含まれていると意図しない外部送信になるため、外部参照は削除してデータをHTMLに直接埋め込むかローカルファイルに置き換えてください。
よくある質問
AIが生成したSVGアイコンがHTMLに表示されません。PNGに変換した方がいいですか?
まずSVGを`<img>`タグで参照しているならファイルパスを確認してください。パスが正しくても表示されない場合はSVGにviewBox属性があるか確認します。viewBoxがなければ表示サイズが0になることがあります。問題が解決しない場合はPNG変換も有効な選択肢です。
ロゴをSVGとしてHTMLにインラインで埋め込むと、後からロゴを変更するのは大変ですか?
インライン埋め込みはHTMLのソースを直接書き換える必要があるため、複数のHTMLファイルで同じロゴを使っている場合は各ファイルを個別に更新しなければなりません。ファイル参照方式の方が1ファイル更新で全ページに反映されます。共有の都度1ファイルにまとめるなら都度インライン化が効率的です。
SVGファイルのサイズが予想より大きくなっています。最適化する方法はありますか?
SVGO(コマンドラインツール)やsvgomg(ブラウザ上のGUIツール)を使うと、コメント・メタデータ・不要なグループを削除して30〜80%圧縮できます。AIが生成したSVGには冗長なID属性や変換行列が多く含まれることがあり、最適化前後でサイズが大きく変わることがあります。