【SVG実践】SVG画像を使ってみる
こんにちは iijmyaです。
今回は先日お話ししましたSVGの実践編として、
SVGで画像を作成して実際にHTMLページに載せてみたいと思います。
=============================== 目 次 ===============================
1.SVGファイルの作成
2.HTMLのページにSVGファイルを載せる
3.SVGライフを充実させるために
====================================================================
前回お話ししたように、SVGファイルはAdobeのIllustratorやオープンソースソフトのInkscapeなどの
画像編集ソフトを利用することによって作成することが出来ます。
今回はIllustratorを使ってSVGファイルを作成し、HTMLのページに載せてみます。
1.SVGファイルの作成
2.HTMLのページにSVGファイルを載せる
今回は、前回紹介した方法の一つである、objectタグを用いてSVG画像を読み込みたいと思います。
比較用にPNG画像のアイコンも載せておきます。
■ HTMLの記述
<body> <header> <!-- 省略 --> </header> <div class="main"> <div class="left_pane top"> <object type="image/svg+xml" data="icon.svgz"></object> </div> <div class="right_pane top"> <!-- 省略 --> </div> <div class="left_pane bottom"> <!-- 省略 --> </div> <div class="right_pane bottom"> <img src="icon.svgz"> </div> </div> <footer> <!-- 省略 --> </footer> </body>
3.SVGライフを充実させるために
SVG画像は何も考え無しに作ってしまったり、複雑な構成や多色の図を作ろうとすると、
PNG画像やJPG画像などのラスタ画像と比べてファイル容量が大きくなってしまう場合があります。
例えば、今回作成したアイコンだとSVGファイルの方が半分も軽いですが、
以下の画像を見てみると、SVGファイルの方が倍以上容量が大きくなっています。
そのため、SVG画像の軽量化が必要になる場合が出て来ると思いますが、以下のような方法があります。
1) SVGZ形式で保存する
SVGZは、先ほどIllustratorでアイコンを作成し、保存するときに出てきましたね。
SVGZはSVGを圧縮したファイル形式になるため、軽量化が期待出来ます。
例えば、先ほど例に出したSVG画像をSVGZ形式で保存してみると、かなり軽量化することが出来ました。
2) 軽量化ツールの使用
軽量化ツールのひとつに「SVGO」があります。
SVGOはターミナル上で以下のコマンドを打つだけでインストール可能です。
sudo npm install -g svgo
使い方は簡単で、軽量化したい対象SVGファイルのあるディレクトリまで移動し、以下のようなコマンドを打つだけです。
svgo ファイル名
例えば今回作成したtest.svgに対して軽量化を行ったところ、以下のようになりました。
$svgo test.svg Done in 171 ms! 169.186 KiB - 16.5% = 141.276 KiB
SVGファイルをSVGZファイルに変換することも出来るようなので試してみたところ、
$svgo test.svg -o - | gzip -cfq9 > test2.svgz $du -a -h 12K ./test2.svgz
先ほど1) でIllustratorで保存したSVGZファイルより、5KB軽い結果になりました。
他にも指定ディレクトリ内にある全てのSVGファイルの軽量化や、
SVGZファイルからSVGファイルへの変換など、色々なことが出来るようなので、
詳しくは以下のリンク先で確認してみてください。
今後どんどんSVGに対応するブラウザやサイトが増えていくと良いですね。