SVG スプライトシート
JSON マップを使用して SVG スプライトシートを生成する
SVG アイコンをカスタム グリッド上に配置し、JSON フレーム マップを含む 1 つの PNG、WebP、または SVG スプライトシートをエクスポートします。列、セルのサイズ、パディング、間隔、配置、スケール、並べ替え順序を制御します。
プレビュー
プレビューはありません。ファイルを追加して選択すると結果が表示されます。
ファイルがありません。上にドロップするか、「ファイルを選択」を押してください。
SVG スプライトシートとは
スプライトシートは、たくさんの小さな画像をグリッドに収めた 1 枚の画像と、それぞれがどこにあるかを示すマップの組み合わせです。ここでの元データは SVG ファイルで、1 つずつ専用のセルに描画され、できあがったシートは PNG、WebP、または 1 枚の SVG キャンバスとして書き出されます。
これは、SVG シンボル スプライトとは異なります。シンボル スプライトは、<use> の ID によってページ参照されるアイコンごとに <symbol> を持つ 1 つの SVG ファイルであるため、各アイコンはベクター マークアップのままで、CSS で色付けできます。スプライトシートは視覚的なキャンバスです。スプライトシートを消費するものはすべて、座標によってフレームを切り出します。 HTML アイコンのシンボル スプライト、キャンバスのスプライトシート、WebGL、または CSS 背景スプライトを選択します。
スプライトシートを使うのはどんなとき
スプライトシートは、たくさんの小さな画像を 1 つのファイルにまとめます。ゲームやアプリはリクエスト 1 回で済み、すべてのフレームを 1 枚のテクスチャに収めておけます。canvas や WebGL のレンダラーは矩形を指定して描画し、CSS は background-position で位置を決め、その座標は JSON マップが教えてくれるので、手で測る必要はどこにもありません。読み込む側がピクセルで動いているなら、選ぶのはこちらです。HTML の中で自在に拡大縮小し、色を継承するアイコンが欲しい場合は、代わりに SVG シンボルスプライトを作ってください。
SVG ファイルからスプライトシートを作成する方法
- 1
SVG ファイルをドロップするか「ファイルを選択」を押してキューに追加します。一度に最大 40 件までです。
- 2
グリッド(列数、行数、セルサイズ、余白、間隔)を決め、続けて配置、拡大率、並び替え、出力形式を設定します。変更するたびにシートが描き直されます。
- 3
「すべて保存」を押すと、シートと JSON のフレームマップを収めた ZIP を 1 つダウンロードできます。
プライバシー:ファイルはブラウザから出ません
変換は、JavaScript および WebAssembly を使用してブラウザーでローカルに実行されます。ファイルのアップロードやサーバー側の変換がないため、追加したファイルはデバイス上に残ります。
ローカル処理は、機密ロゴ、内部文書、未公開のクライアント アートワークを保護するのに役立ちます。ページと変換コードは使用中にキャッシュされるため、すでに開いているツールはネットワーク接続がなくても引き続き動作できます。
よくある質問
スプライトシートと SVG シンボルスプライト、どちらを使うべきですか?
アイコンを HTML に置くならシンボルスプライトです。ベクターのままで、CSS の color プロパティを継承し、各アイコンは id を指定して <use> で参照します。canvas や WebGL のゲーム、CSS の背景スプライトのように、座標をもとにピクセルを描画するものにはスプライトシートを使ってください。スプライトシートの JSON マップには、すべてのフレームの x、y、width、height が入っています。
JSON マップには何が入っていますか?
アイコンごとに 1 件、拡張子を除いたファイル名をキーにしたエントリが入ります。たとえば {"home":{"x":0,"y":0,"width":64,"height":64}} のようになります。矩形は余白も含めたセル全体を覆うので、その矩形を描画すれば、アイコンは置かれたとおりの位置に再現されます。同じ名前が重なった場合は -2、-3 が付き、キーは必ず一意に保たれます。
シートはどれくらい大きくできますか?
canvas の上限は 1 辺あたり 16,384 px、合計で 64 メガピクセルです。256 px のセルにアイコン 40 個なら余裕で収まります。上限を超えた場合は、白紙の画像を書き出す代わりに、ツールがそのサイズを知らせます。WebP はブラウザにも左右されます。WebP をエンコードできない環境では、拡張子だけ違う PNG ではなくエラーが返ります。