svgコードの圧縮と最適化、色を変更する方法

HTML/CSS

今日は「svgコードの圧縮と最適化、色を変更する方法」をご紹介します。

こんにちは。Webコーダーのはるです。

先日、いただいたデザインカンプのsvg画像から、ホバー用の色違いのアイコンを作成したので備忘録です。

svgコードの圧縮と最適化、色を変更する方法

svgの扱いをあまり良くわかっていなく、制作パートナーさんに教えていただきました。

【今回のゴール】
・svgコードの圧縮と、svgコードの最適化をします。
・1つのsvgアイコンを書き出して、svgコードを編集することで色違いのアイコンを作成します。

svg画像の保存→圧縮

まず、編集の元となるsvg画像を保存します。

今回は、ICOOON MONOさんのsvg画像をお借りしました。ありがとうございます。

このような画像です。

svg画像をPCに保存したら、エディターでsvgファイルを開きます。私はVSCodeを使用しています。

こんな感じでsvgコードがババーっと表示されます。

まずは、このコードを圧縮します。圧縮には「SVGOMG」というWeb上のツールを使用しています。(パートナーさんに教えていただきました。ありがとうございます!)

SVGOMGは、このような画面です。「Open SVG」から先程のsvgファイルを開きます。

すると、コードの圧縮が行われます。右下の緑の保存ボタンから保存します。隣にどのくらい圧縮できたかが書かれています。

実際にどのくらいコードが変わったのか、「difff」ツールで差分を調べてみました。以下が結果です。

左が旧、右が新コードです。ちょっとわかりにくいのですが、2145文字→2074文字に文字数が減っています。不要なコードを削除することによって、ファイルサイズを縮小できます。

画像によっては、もっとたくさん圧縮される時もあります。自分ではコードをいじれないので、これは嬉しいです。

コードの最適化

次に圧縮されたコードを編集していきます。

<svg>タグで必ず必要なviewBoxとwidth/heightの指定がされているか確認します。

以下のコードは、viewBoxのみで、width/height指定がされていません。

viewBox=”0  0  512  512″とあり、後半の2つがそれぞれwidthとheightです。これらを記述していきます。

width, height, viewBox属性がないと、表示崩れの恐れがあるので必ず記述します。

逆に、viewBox属性がないときはwidth,heightの数字をviewBox内に記述します。

色の変更

色を変更することもできます。

コード内の、fill=”カラーコード”の部分を編集すればOKです。

試しに、#FF7F50(コーラル)に編集してみました。保存をすると、コーラルに変更されました。(デスクトップのアイコンで失礼します。。)

ちなみに、この方法だと当たり前ですがオリジナルのsvg画像が編集されてしまいます。

元の画像を残しつつ、新しく色違いの画像を作りたい時は、先ほどの圧縮ツール「SVGOMG」を使用すると便利です。

元のsvgコードを丸っとコピーして、以下の「Paste markup」にコードをペーストします。

「Paste markup」を押すと、クリップボードアイコンの隣が空欄になります。そちらに、コードをペーストします。

ペーストした瞬間に以下の画面になります。オリジナルの画像を新しく保存したもの&コードの圧縮が一度にできます。

あとは、先程と同じようにエディタで開いて、fill=””部分のカラーコードを編集すれば別ファイルで保存できます。この方法でコードをコピペすると圧縮も一緒にかけられるので便利です。

//

svgについて調べていた時、こちらのQiitaにおせわになりました。ありがとうございます!

あとがき

制作パートナーさんに、制作に関する知識を教えていただいています。環境に感謝です。なかなかアウトプットが追いついていませんが、少しずつ教えていただいたことをまとめていきたいと思います。

今日は以上です。

*もりけん塾に所属しています。

Thanks:師匠「もりけんさん」(@terrace_tec)

もりけんさんのHPはこちら