SVGパス編集
SVG Path Editor
パスデータを絶対・相対コマンドで書き換え、移動・拡大・回転・向きの反転を加え、バウンディングボックスとプレビューを表示します。
`d`属性を読み、変換したものを返します。絶対と相対、移動、拡大縮小、バウンディングボックスの中心まわりの回転、向きの反転、指定した小数桁での丸めです。結果はPath2Dを通して描くので、円弧の計算はSVGのレンダラと同じやり方でブラウザが行い、バウンディングボックスと、そのまま貼れるviewBoxを報告します。
path の d 属性
プレビュー
破線の長方形がバウンディングボックス、赤い点が始点です。塗りは nonzero 規則です。
結果
コマンド
18
サブパス
3
数値
32
バイト
113 → 97
バウンディングボックス
x 2.00 y 2.00 w 20.00 h 20.00
viewBox
2.00 2.00 20.00 20.00
何をするか
- · SVG 最適化と同じパーサーで読むので、
1.5.5のような詰めた書き方も円弧のフラグも正しく読めます。絶対と相対の変換、小数の丸め、移動、拡大縮小、バウンディングボックスの中心を軸にした回転、向きの反転、バウンディングボックスの算出ができます。 - · 回転させると
HとVはLになり、円弧の半径・x 軸回転・sweep フラグは SVG 1.1 付録 F.6 の式で計算し直します。バウンディングボックスは制御点ではなく、各曲線の実際の極値から求めます。 - · 曲線を単純化することはしません。それは形そのものを変える作業で、どこまで許すかを決めるのは人です。
ファイル全体を小さくするなら SVG 最適化、曲線の加速のしかたを調整するならイージング曲線エディタがあります。
使い方
d属性を貼り付けます
囲みの`<path>`は要らず、値だけです。詰めた書き方でも構いません。`1.5.5`を2つの数として読みますし、区切りのない円弧のフラグも扱えます。パーサがSVG最適化のものだからです。
必要な変換をかけます
移動・拡大縮小・回転は座標そのものに適用されるので、出てきたものに`transform`属性は要りません。回転はバウンディングボックスの中心まわりで、アイコンならそれが望みどおりの動きであり、素の`rotate()`がすることとは違います。
絶対と相対、そして精度を選びます
相対コマンドのほうがたいてい短く、インラインで埋め込むアイコンではそれが効きます。本当に容量を左右するのは精度です。24単位のアイコングリッドなら小数3桁で十分で、6桁から2桁に落とすと文字列が半分になることもよくあります。動かしながらバイト数の表示を見てください。
塗りがおかしければ向きを反転します
赤い点が始点を示すので、反転の効き目が目に見えます。nonzeroの規則で内側のサブパスが穴になるかを決めるのは向きですし、stroke-dashのアニメーションがたどるのも向きです。
パスか、viewBoxを取ります
出力欄には`d`の値と、そのまま使える`<path>`要素が入っています。統計のパネルにはバウンディングボックスがviewBoxの文字列として出ていて、アイコンを枠にぴったり収めるいちばん速い方法です。
よくある質問
曲線を単純化してくれないのはなぜですか。
単純化は形を変えるもので、どれだけの変化なら許せるかはその絵についての判断であり、ツールには下せないからです。点を減らすアルゴリズムはどれも許容誤差を取りますし、その判断をする正直な場所は、代償が目で見えるベクター編集ソフトの中です。安全に容量を動かせるのは小数桁の丸めで、それはここにあります。
回転や拡大縮小をすると円弧はどうなりますか。
円弧のままです。半径、x軸の回転、スイープのフラグはSVG 1.1の附属書F.6の式で計算し直され、それが縦横で倍率の異なる拡大でも楕円の軸を正しく保ちます。回転すると`H`と`V`は`L`になります。水平な線は水平のままではいられないからです。
バウンディングボックスは制御点から取っていますか。
違います。各曲線の実際の極値から取っています。3次曲線の制御点はたいてい曲線の外側にあるので、制御点から作った箱は大きすぎます。しかも目に見えて大きすぎることが多く、まさにそこが効いてきます。この箱はviewBoxとして貼るものだからです。
パス1本しか扱えません。ファイル全体はどうしますか。
これは`d`の値ひとつを対象にする設計で、変換や反転が意味を持つのがその粒度だからです。文書全体なら、SVG最適化が中のすべてのパスを書き換えますし、SVGエディタ・解説がその周りの構造を読みます。
ここから渡せます
SVG最適化
SVG Optimiser
編集ソフトの残骸を取り除き、変換をまとめ、座標の桁を丸めて、描画結果を並べて比べます。
画像をSVGに(ベクター化)
Image to SVG
ビットマップを、写真よりロゴや線画に向いた調整でSVGのパスに起こします。
イージング曲線エディタ
Easing Curve Editor
動くプレビューを見ながらcubic-bezierやスプリング曲線を調整し、CSSのタイミング関数を出力します。
SVGエディタ・解説
SVG Editor and Explainer
SVGをプレビューの隣で編集しながら、viewBoxと拡大、変形、各パスコマンド、継承された塗り、無駄なバイト、そして<img>やデータURIやインラインで何が壊れるかを解説します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
イージング曲線エディタ
Easing Curve Editor
動くプレビューを見ながらcubic-bezierやスプリング曲線を調整し、CSSのタイミング関数を出力します。
画像をSVGに(ベクター化)
Image to SVG
ビットマップを、写真よりロゴや線画に向いた調整でSVGのパスに起こします。
SVG最適化
SVG Optimiser
編集ソフトの残骸を取り除き、変換をまとめ、座標の桁を丸めて、描画結果を並べて比べます。
SVGをPNGに変換
SVG to PNG
SVGを好きな倍率でPNG・JPEG・WebPに描き出し、背景は透明のままにも塗りつぶしにもできます。
カラーコード変換
Colour Format Converter
HEX・RGB・HSL・HWB・LAB・LCH・OKLCHのあいだで色を変換し、いちばん近い色名も示します。
カラーピッカー
Colour Picker
OKLCHの色域から、画面のスポイトで、またはアップロードした画像から色を選び、好きな表記でコピーします。