
SVG形式の画像ファイルはどうやって作ればいいの?

Illustratorという画像編集ソフトを使ってSVG画像に書き出す方法を教えます・・・
そもそもSVG画像とは何?という方は以前のブログ記事SVGとはをご覧ください。
今回はAdobe Illustratorを使って画像を書き出していく方法です。
ベクター画像を編集できる無料の画像編集ツールもありますので、 Adobe Illustrator を持っていないという方は探してみてください。Inkscape (インクスケープ)が Adobe Illustrator に大体似たような無料ツールだと言われています。
Illustrator で画像を作成する
まずは画像を作成します。簡単なロゴマークなどの想定でやってみます。

このとき気を付けるのは
- カラーをRGBで作成する
SVGはWeb用の画像形式なので、RGBで設定するとそのままの色で画像を表示することができます。
- レイヤーを一つにまとめる
レイヤーが複数あるとSVG内のデータが複雑になるので、あえてレイヤーを分ける必要がある場合以外は一つにまとめた方が容量も軽くなります。
- アートボードのサイズを画像に合わせる
アートボードのサイズの情報もSVG内のデータに入ってしまいますので、周りに余白を残すと余白がついた画像として表示されます。 Adobe Illustrator の上部のメニューにある、オブジェクト>アートボード>オブジェクト全体に合わせる などの機能を使い、余白をなくしておくと後で画像を配置しやすくなると思います。サイズは後で変えることもできるしCSSで変えることもできますので、適当でも大丈夫かなと思います。
以上の3点に気を付けてパスや図形ツールなどで画像を作成してください。
SVG形式で保存する
画像が作成できたら、一旦AIデータで保存しておいてから、別名でSVG形式で保存します。

Web用に保存する、ではなく、別名で保存をクリックし、ファイル名をつけ、
ファイルの種類:SVGを選択して保存してください。
SVGの圧縮形式SVGZ形式もありますが、圧縮は後からでもできるのでここではSVG形式で保存します。
保存を押すとSVGオプションウィンドウが開きます。下部にある詳細オプションをクリックし、詳細オプション設定画面を開いてください。

詳細オプションの中で小数点以下の桁数の数値は、画像データのパスなどの位置の座標をどれほど厳密に設定するかということなので、数値が多いほどキレイで作成データに忠実な画像ができます。
しかし、あまり数値を大きくしても、コードの記述量が増えて容量が無駄に増えるだけになります。2桁としても100分の1ピクセルくらいの誤差なので、複雑なデータなら容量を軽くするために1にしても自分は大丈夫だとおもっています。シンプルなもので余裕があるなら3、というわけでこの枠の数値は1~3の範囲で決めると良いと思います。1にすると一番容量が軽くなります。
あとの設定は初期値でいいと思います。
決まったらOKを押し、SVG画像を保存します。
これでSVG形式の保存は完了です。あとはこの画像ファイルをリンクさせたりアップロードするだけで拡大しても劣化しないロゴや画像などを表示させることができます。
※WordPressはセキュリティ上SVGファイルはアップロードできません。
SVGデータの内容、軽量化
次は、少し踏み込んで、SVGデータの内容がどうなっているのか、どうすれば軽くなるのか、圧縮するにはどうすればよいのかを解説します。
上で保存した犬の画像ですが、実は2パターンありました。

左:illustratorでパスや図形ツールを使い、そのままにしたデータ 1.89KB
右:パスをアウトライン化し、、色面だけでできたもの 3.38KB
同じ画像でも処理の仕方によってデータ量に差がでます。その差はとにかくSVG画像のコード量が短いほど容量が軽くなるという事実からきています。
これをそれぞれSVGで保存すると、コード内は以下のようになります。
左のSVG画像のコード

パスの情報が残っているので線の種類や線の太さ、色などのデータが記述されています。一つ一つのパスや図形のコードが1、2行など短いです。
右のSVG画像のコード

円の図形データはそのままですが、犬の顔の輪郭などは複雑なパスデータになっているので、コード量が多くなっており、情報も色面の塗りの色と座標だけになっています。
このコード量の違いによって、容量の軽さの違いが生まれています。
その図形をただ表示するだけならパスに情報が残っている軽いデータの方でいいのですが、あとでアニメーションさせるときに、犬の輪郭線の形のデータが必要だとなったら色面にしてしまったものが必要になるかもしれません。
自分がその図形で何をしたいのかを明確にしてデータを作るとベストです。
SVGファイルの圧縮
また、SVGファイルの圧縮サイトがあるので、それを活用してさらにデータを軽量化することができます。
SVGOMG ・・・SVGファイル圧縮サイト

サイトを開いて、圧縮したいファイルを右の灰色のゾーンにドラッグ&ドロップします。

左上メニューのIMAGEで画像が表示されます。右のたくさんあるメニュー、featuresの下はデータを圧縮するために捨てたりしているタグや記述です。この量のいらない記述を捨てることによって、画像右下に67%圧縮されますという表示が出ています。大体6割近くに圧縮できます。

コードを確認したい場合はメニューのMARKUPを押してコードを表示させます。
また、Remove viewBox にもチェックが入っていてviewBoxの記述もなくなっているのですが、自分はviewBoxタグをいじることもあるので、一応戻しておきました。
SVGコードに詳しい人は、細かい指定で圧縮できて便利なサイトだと思います。
詳しくなくても、ただ画像を表示させたいだけなら初期設定のまま下矢印ボタンを押して圧縮ファイルをダウンロードすれば問題はないと思います。
ちなみに先ほどの犬の画像は1.89KBから1.15KBにまで圧縮することができました!




コメント