SVG PNG 変換ツール

SVG をブラウザだけで PNG・JPEG・WebP に変換。倍率やピクセル指定、透過背景、複数ファイルの一括 ZIP 出力に対応。xmlns の欠落は自動で補い、外部画像やフォントの問題も表示します。

  • ブラウザ内で処理
  • データはブラウザ外に出ません
  • 無料 · 登録不要
1 倍では SVG のルート要素に書かれたサイズで出力します。viewBox だけなら viewBox のサイズ、どちらもなければ 300 × 150 です。倍率には 0 より大きい数を入力できます。「幅」「高さ」は 1〜65,535 の整数ピクセルで、もう一辺は縦横比から計算します。「幅 × 高さ」は両辺を指定し、比率が SVG と違うときは preserveAspectRatio の指定どおりに配置します。一辺は 65,535 px まで、かつブラウザの canvas 上限の範囲内です。
JPEG か WebP を選ぶと「画質」が表示されます。1〜100 の整数で、空欄や範囲外のときは 92 になります。JPEG は透過を扱えないため、背景が「透過」のとき透明部分は白で塗られます。選んだ形式をブラウザが書き出せないときは、ブラウザが返した形式で保存し、プレビューの下に表示します。
「透過」は PNG と WebP で SVG の透明部分をそのまま残します。「白」「色を指定」は先に背景を塗り、その上に SVG を描きます。JPEG で「透過」を選ぶと背景は白になります。背景が透過で結果が 4,194,304 ピクセル以下のときは画像を調べ、すべて透明なら注記を表示します。
.svg ファイルをツール内のどこかにドロップするか、上の枠をクリックして選びます。複数ファイルは同じ設定で変換し、SVG でないファイルはスキップして一覧に示します。SVG コードはここに入力または貼り付けて、「変換」か Ctrl/⌘+Enter を押します。テキスト欄の外で Ctrl/⌘+V を押すと、クリップボードの SVG コードや SVG ファイルをそのまま変換します。圧縮された .svgz ファイルは読み込めません。
結果 ピクセルサイズ、ファイルサイズ、プレビュー、ダウンロードボタンを表示します。ファイル名は SVG の名前を引き継ぎ、倍率が 1 以外なら @2x のような接尾辞、ほかのサイズ指定では「-幅x高さ」が付きます。貼り付けたコードは image という名前で保存します。プレビューの下の注記は、補った内容と読み込まれなかった参照を示します。複数ファイルのときは、ファイル表の名前を押すとそのファイルを表示し、行ごとにダウンロードできます。「すべてダウンロード(.zip)」は svg-to-png.zip を保存します。

SVG をドロップするか、コードを貼り付けて「変換」を押すと、ここに画像サイズ・プレビュー・ダウンロードボタンが表示されます。

例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。

LINE スタンプ用の PNG を一括で書き出す

LINE Creators Market の制作ガイドライン(スタンプ)では、画像はすべて PNG、スタンプ画像は最大 横 370 × 縦 320 px、メイン画像は 240 × 240 px、トークルームタブ画像は 96 × 74 px で、サイズは偶数、背景は透過、1 個あたり 1MB 以下と決められています。Illustrator や Figma で描いた SVG なら、本ツールで次のように書き出せます(2026-09-30、macOS の Chrome 152 で実測。素材は viewBox=“0 0 100 100” の顔アイコン 3 枚)。

用途設定結果
スタンプ画像3 ファイルを同時に選択、サイズ「高さ」320、背景「透過」320×320 の PNG が 3 枚(stamp-01-320x320.png ほか、1 枚目 16,901 バイト)。「すべてダウンロード」で ZIP 1 個にまとまる
メイン画像「幅 × 高さ」240 × 240240×240、11,741 バイト
タブ画像「幅 × 高さ」96 × 7496×74、3,322 バイト。図形は中央に置かれて左右が透明になり、縦横比が SVG と違うことが表示される

どれも偶数サイズ・透過背景・1MB 以下で、ガイドラインの条件に収まります。

出力サイズの決まり方

等倍では、SVG のルート要素が宣言するサイズで出力します。単位は CSS の絶対長で換算します(1in = 96px、1mm = 96/25.4px)。

  • width=“50mm” height=“25mm” → 189×94。mm を px と取り違えると 50×25 になります。
  • width=“200” と viewBox=“0 0 24 12” → 高さは viewBox の比率から 100。
  • viewBox だけ → viewBox の幅と高さ。width=“100%” のような割合は置き場所のページで決まるため、viewBox を使います。
  • どれもない → 300×150。

描画の前に、出力サイズを SVG の width と height に書き込み、viewBox がなければ補います。小さな画像を引き伸ばすのではなく、最終解像度でベクターを描き直します。「幅 × 高さ」の比率が SVG と違うときは、SVG の preserveAspectRatio に従って配置されます(既定は中央)。

自動で直すこと・知らせること

  • xmlns の欠落:HTML に直接書いた <svg> には xmlns が要らないため、Web ページや React コンポーネントからコピーしたコードにはよくありません。そのまま保存した SVG は画像として開けないので、本ツールは xmlns=“http://www.w3.org/2000/svg” を補って変換し、補ったことを表示します。
  • 外部参照:<img> として描画される SVG は SVG Integration 仕様の secure animated mode で処理され、スクリプトも外部ファイルも使えません。Chrome では外部 <image> が「画像なし」アイコンとして描かれてしまうため、リンクを外して URL を一覧表示します。
  • XML エラー:何行目・何列目かと原因を日本語で示します。属性の引用符の閉じ忘れ、終了タグの食い違いなどが対象で、本文に &nbsp;(HTML の文字参照)があれば &#160; への書き換えを案内します。
  • <foreignObject>:Chrome は SVG 内の HTML を描いた canvas の書き出しを拒否します。空の画像を出さずに理由を表示します。

変換の前にファイルを軽くするなら SVG 圧縮・最適化ツール、React で使うなら SVG → JSX、favicon 一式を作るなら Favicon ジェネレーターが使えます。

ほかの変換ツールとの違い

2026-09-30 にデスクトップ版 Chrome で同じファイルを使って確認しました。「幅だけ」は width=“200” viewBox=“0 0 24 12” の SVG で、等倍の正解は 200×100 です。

ツール幅だけxmlns なし外部 <image><foreignObject>
shinsu.jp SVG→PNG変換ツール24×12「画像を読み込めませんでした」表示なしで消える透明な 200×60 の PNG、表示なし
svgtopng.com(既定 2x)400×24、つぶれる「Processing failed」表示なしで消える透明な PNG、表示なし
本ツール200×100xmlns を補って変換リンクを外して URL を表示原因を示すエラー

shinsu.jp は width=“100%” と 200×100 の viewBox を持つ SVG も 100×100 で出力し、円が縦長につぶれました。どちらもブラウザ内で変換するツールで、svgtopng.com は一度に 20 ファイルまで扱えます。

制限

  • 描画はブラウザ自身の SVG エンジンで行うため、Chrome・Firefox・Safari で文字のアンチエイリアスやフィルターの結果が少し異なることがあります。
  • 文字はこの端末にインストールされたフォントで描かれます。別の PC ではフォントが変わることがあるので、固定したいときはフォントを data: URI で @font-face に埋め込んでください。
  • <foreignObject> を含む SVG は、Chrome(152 で確認)と同じエンジンの Edge では書き出せません。
  • SMIL アニメーション付きの SVG は最初のフレームだけを保存します。
  • canvas から WebP を書き出せないブラウザでは PNG が返されます。本ツールはその PNG を保存し、その旨を表示します。
  • .svgz(gzip 圧縮した SVG)には対応していません。展開してから読み込んでください。

コマンドラインでの一括変換

ファイルが多い場合やビルド処理に組み込む場合は、librsvg で SVG を描画する Node.js ライブラリ sharp が使えます。sharp 0.34.5(librsvg 2.61.2)で viewBox だけを持つ 24 × 24 のアイコンを変換した結果:

import sharp from 'sharp'; // npm install sharp

await sharp('icon.svg').resize(512, 512).png().toFile('icon-512.png');   // 512 × 512
await sharp('icon.svg', { density: 288 }).png().toFile('icon@4x.png');   // 4 × the SVG size

resize も density も指定しないと、PNG は SVG 自体のサイズ(ここでは 24 × 24)になります。既定の密度は 72 なので、density: 288 で 96 × 96 です。librsvg はブラウザとは別の描画エンジンで、Web フォントや CSS の @import に依存する文字は見た目が変わることがあります。フォルダごと変換する前に、1ファイルをこのページの結果と比べてください。

FAQ

24×24 のアイコンが小さい PNG になるのはなぜですか?

viewBox だけで width / height がない SVG には固有のピクセルサイズがないため、等倍では viewBox の値がそのまま使われます。viewBox="0 0 24 24" なら 24×24 px です。倍率を 4x にするか、サイズを「幅」に切り替えて必要なピクセル数を入力してください。ベクターを出力サイズで描き直すので、輪郭はぼやけません。

透過背景は保たれますか?

PNG と WebP は、背景が「透過」なら保たれます。JPEG には透過がなく、HTML の仕様では canvas から書き出すと透明部分が黒で合成されるため、本ツールは白で塗りつぶしてその旨を表示します。別の色にしたいときは背景色を指定してください。

SVG 内の画像や Web フォントが PNG に出ないのはなぜですか?

ブラウザは SVG を画像として描画し、このときファイル外のリソースを一切読み込みません。外部 <image>、別ファイルを参照する <use>、CSS の @import や Web フォントが該当します。本ツールはこうした参照をプレビューの下に一覧表示します。残したい場合は data: URI で埋め込んでください。埋め込まない文字はインストール済みのフォントで描画されます。

ファイルはアップロードされますか?

されません。読み込み・描画・PNG 生成はすべてこのタブの中で行います。SVG は画像として描画されるので、中のスクリプトやイベント属性も実行されません。ページを開いたあとでネットワークを切っても変換できます。

どこまで大きく書き出せますか?

一辺 65,535 px まで、かつブラウザの canvas 上限の範囲内です。デスクトップ版 Chrome は 268,435,456 ピクセル(16,384×16,384)、iPhone と iPad は 4,096×4,096 までです。上限を超えると、空の画像を保存せずにエラーを表示します。