SVGファイルをアップロード
最大10MBのファイルを3個まで変換できます
SVGファイルをアップロード
登録して1日10回の無料変換を取得
SVGからPNGへの変換とは?
SVGからPNGへの変換とは、ベクターグラフィックスをラスター化するプロセスです。数学的に記述された図形や曲線がピクセルのグリッドに変換されます。このプロセスは、ラスター形式間の単純なエンコード変換とは根本的に異なります。ここでは、幾何学的な命令の解釈と、特定の解像度での可視化が行われます。
SVG(Scalable Vector Graphics)は、画像を数学的オブジェクトの集合として記述します。長方形、楕円、ベジェ曲線のパス、テキスト要素などです。SVGファイルはXMLドキュメントであり、各図形は座標と属性によって定義されます。例えば、<circle cx="50" cy="50" r="40" fill="red"/>は、座標(50, 50)を中心とし、半径40単位の赤い円を描画します。どのような拡大率でも、ブラウザやグラフィックエディタはピクセル座標を再計算し、完璧な鮮明さを維持します。
PNG(Portable Network Graphics)は、画像を固定されたピクセルのマトリックスとして保存します。各ピクセルは特定の色と透明度レベルを持ちます。PNG画像を拡大すると補間が行われ、隣接するピクセルに基づいて新しいピクセルが追加されるため、必然的にぼやけが生じます。縮小にはピクセルの破棄が必要となり、細部が失われる可能性があります。
では、なぜ無限に拡張可能なSVGを、解像度が制限されたラスターPNGに変換するのでしょうか?答えは互換性と用途の特殊性にあります。現代のブラウザでSVGが広くサポートされているにもかかわらず、ラスター形式が必要または望ましい状況が存在します。
SVGからPNGへのラスター化が必要な場合
ソフトウェアとの互換性
ベクター形式のSVGは、すべてのプログラムでサポートされているわけではありません。多くのアプリケーション、特に写真やラスターグラフィックスを扱うものは、SVGファイルを開けないか、正しく処理できません。
| プログラム/プラットフォーム | SVG | PNG |
|---|---|---|
| Microsoft Word/PowerPoint | 部分的(アーティファクトあり) | 完全対応 |
| Google Docs/Slides | 非対応 | 対応 |
| Canva | インポートは有料 | 対応 |
| SNS(LINE、Twitter) | 非対応 | 対応 |
| LINEスタンプ | 非対応 | 対応 |
| Instagram(プロフィール) | 非対応 | 対応 |
| 多くのCMS | ブロックされることが多い | 対応 |
| メールクライアント | ブロックされる | 対応 |
| 印刷会社 | まれ | 一般的 |
PowerPointプレゼンテーションにロゴを挿入したり、メッセンジャーで画像を送信したり、SNSにアイコンをアップロードする必要がある場合、PNGが汎用的なソリューションとなります。
セキュリティとプラットフォームの制限
SVGファイルには実行可能なJavaScriptコードを含めることができ、潜在的なセキュリティ上の脅威となります。このため、多くのプラットフォームではSVGのアップロードを禁止しています:
- WordPressはデフォルトでメディアライブラリでSVGファイルをブロック
- メールプロバイダーはメールからSVGを削除するか、表示をブロック
- コンテンツ管理システムはXSS攻撃を防ぐためにSVGを制限することが多い
- ECサイト(Amazon、楽天)は商品画像にラスター形式を要求
PNGは定義上安全です。コードを埋め込む可能性のない単なるピクセルデータです。
特定のサイズの固定
SVGは本質的に「ネイティブ」サイズを持たず、コンテナに合わせて拡縮します。時には厳密に決められたサイズの画像が必要な場合があります:
- ファビコン - 正確に16x16、32x32、48x48ピクセル
- アプリアイコン - iOSは特定サイズのPNGが必要(iPhoneは180x180)
- バナー - 広告ネットワークは正確なピクセルサイズを要求
- アバター - SNSは特定の解像度の正方形画像を期待
SVGからPNGへの変換により、正確なピクセルサイズの画像を取得できます。
ラスターグラフィックスとの統合
コンポジション、コラージュ、フォトモンタージュを作成する際、ベクターとラスターを組み合わせる必要がよくあります。1つのプロジェクトで2種類のグラフィックスを扱うのは不便です。編集ツールが異なり、変換時の動作も異なります。SVGのラスター化により、Photoshop、GIMP、その他のラスターエディタでのさらなる処理のためにフォーマットを統一できます。
SVGとPNGの技術的比較
画像保存の原理
SVG(ベクター):
- オブジェクトの数学的記述を保存
- ファイルサイズはパスの複雑さに依存し、解像度には依存しない
- CSSスタイル、JavaScript、SMILアニメーションをサポート
- テキストは編集可能でインデックス作成可能なまま
- 品質を損なわない無限のスケーリング
PNG(ラスター):
- 色情報を持つピクセルのグリッドを保存
- ファイルサイズは解像度に正比例
- インタラクティブ性のない静的画像
- テキストはピクセルになり、編集可能性を失う
- 拡大するとぼやける
特性比較表
| 特性 | SVG | PNG |
|---|---|---|
| グラフィックスタイプ | ベクター | ラスター |
| 拡張性 | 無限 | 解像度による制限 |
| 透明度 | opacity、fill-opacity | 8-16ビットアルファチャンネル |
| 編集 | オブジェクト単位(各要素を個別に) | ピクセル単位(ブラシ、選択) |
| アニメーション | CSS、SMIL、JavaScript | APNG(限定的サポート) |
| インタラクティブ性 | マウスイベント、スクリプト | 不可能 |
| テキストのインデックス作成 | あり(検索エンジンがテキストを認識) | なし(テキストはピクセルとして) |
| ファイルサイズ(ロゴ) | 1-10 KB | 10-100 KB(解像度による) |
| ファイルサイズ(複雑なイラスト) | 100+ KB | より小さくなる可能性 |
| ブラウザサポート | 現代のブラウザすべて | 1997年以降のすべてのブラウザ |
| セキュリティ | 潜在的なXSS | 完全に安全 |
PNGがSVGよりコンパクトな場合
逆説的ですが、一部の画像タイプではPNGがSVGより小さくなります:
- フォトリアリスティックなイラスト - SVGでは複雑なグラデーションやテクスチャは膨大な数のパスで記述される
- 多くの細かいディテールを持つ画像 - 各ディテールには個別のパスが必要
- トレースされた写真 - 自動ベクター化は何千ものノードを作成
PNGはDeflateアルゴリズムでそのような画像を効率的に圧縮しますが、SVGは各曲線を数学的に記述する必要があります。
SVGラスター化プロセス:仕組み
ベクターからラスターへの変換ステップ
SVGドキュメントのパース - ファイルのXML構造がパーサーによって解析されます。すべての要素が識別されます:図形、パス、グループ、テキスト、スタイル、変換。ネストされた要素と参照(use、defs)は再帰的に処理されます。
座標系の計算 - viewBoxとキャンバスサイズが決定されます。scale(拡大率)が指定されている場合、最終的なピクセルサイズが計算されます。例えば、viewBox="0 0 100 100"のSVGでscale=2の場合、200x200ピクセルの画像になります。
フォントの読み込み - テキスト要素を正しくレンダリングするために、システムフォントが読み込まれます。特定のフォント(font-family)が指定されている場合、システム内で検索が実行されます。
各要素のラスター化 - z-index(ドキュメント内の順序)に従って、各要素がピクセルに変換されます:
- パス(path)はベジェ曲線で補間され、色で塗りつぶされる
- 図形(rect、circle、ellipse)は数式で計算される
- テキストはフォント、サイズ、字間を考慮してレンダリングされる
- グラデーションは色のポイント間で補間される
- フィルター(blur、shadow)はピクセル単位の操作として適用される
レイヤーの合成 - 透明度(opacity)とブレンドモードを持つ要素は、アルファ合成のルールに従って互いに重ねられます。
PNG形成 - 結果として得られるRGBAピクセル配列はDeflateアルゴリズムで圧縮され、PNGファイル構造に書き込まれます。
スケールパラメータ
ラスター化における重要なパラメータはスケールで、viewBoxの単位とピクセル間の比率を決定します:
- scale=1 - SVGの1単位が1ピクセルに相当。viewBox="0 0 100 100"の場合、結果は100x100ピクセル
- scale=2 - Retinaスクリーン用の2倍ピクセル密度。100x100のviewBoxで200x200ピクセル
- scale=4 - 高品質印刷用の4倍解像度
重要なのは、スケールはベクター要素の品質に影響しないということです。常に最大の精度でレンダリングされます。スケールはピクセルグリッドの密度のみを決定します。
SVG内のテキスト処理
SVGのテキスト要素はラスター化時に特別な注意が必要です:
- システムフォント - フォントがシステムにインストールされている場合、テキストは正しくレンダリングされる
- Webフォント - 外部フォント(Google Fonts)へのリンクはローカル変換時に読み込まれない可能性がある
- 埋め込みフォント - SVG内のbase64エンコードされたフォントは正しく処理される
- フォールバック - フォントがない場合、システムのserif/sans-serifが使用される
ラスター化後、テキストはピクセルになり、編集機能を失います。テキストの編集可能性を維持することが重要な場合は、画像をSVG形式のままにしてください。
変換時の透明度の保持
SVGでの透明度の保存方法
SVGでは、透明度はいくつかの方法で実装されます:
<!-- opacity属性 - 要素全体の透明度 -->
<rect opacity="0.5" ... />
<!-- fill-opacity - 塗りつぶしのみの透明度 -->
<rect fill-opacity="0.7" ... />
<!-- stroke-opacity - ストロークのみの透明度 -->
<rect stroke-opacity="0.3" ... />
<!-- RGBAカラー - 組み込みの透明度 -->
<rect fill="rgba(255, 0, 0, 0.5)" ... />
これらすべてのバリエーションはラスター化時に正しく解釈され、PNGの8ビットアルファチャンネルに変換されます。
透明な背景
SVGはデフォルトで背景を持ちません。要素の背後のスペースは透明です。PNGへの変換時にこの透明度は保持されます:要素のない領域はalpha=0(完全に透明)を取得します。
これは以下にとって非常に重要です:
- ロゴ - 白い四角形なしでどんな背景にも配置可能
- アイコン - 異なるデザインのインターフェースへの統合
- グラフィック要素 - 写真や背景への重ね合わせ
半透明要素
opacity < 1の要素はPNGでもその半透明性を維持します。ソフトシャドウ(drop-shadow)、ぼかされたエッジ、透明度のあるオーバーレイ - これらすべてはPNGの8ビットアルファチャンネル(256段階の透明度)のおかげで正しく転送されます。
最適な使用シナリオ
アプリアイコンの準備
モバイルプラットフォームでは、特定サイズのラスター形式のアイコンが必要です:
iOS:
- 180x180 - iPhone (3x)
- 167x167 - iPad Pro
- 152x152 - iPad
- 120x120 - iPhone (2x)
Android:
- 192x192 - xxxhdpi
- 144x144 - xxhdpi
- 96x96 - xhdpi
- 72x72 - hdpi
- 48x48 - mdpi
SVGアイコンがあれば、どの画面でも完璧な品質で必要なすべてのPNGサイズを生成できます。
ファビコンの作成
ファビコン(サイトアイコン)はICOまたはPNG形式である必要があります。SVGロゴから以下のバージョンを作成します:
- 16x16 - ブラウザタブの最小サイズ
- 32x32 - 標準ファビコン
- 48x48 - Windowsショートカット
- 180x180 - Apple Touch Icon
SNS用エクスポート
各プラットフォームには独自の画像要件があります:
| プラットフォーム | サイズ | 形式 |
|---|---|---|
| Twitter(投稿) | 1200x630 | PNG/JPG |
| LINE(スタンプ) | 370x320 | PNG |
| YouTube(サムネイル) | 1280x720 | PNG/JPG |
| Instagram(投稿) | 1080x1080 | PNG/JPG |
| Facebook(カバー) | 1200x630 | PNG/JPG |
SVGグラフィックスは各プラットフォームに必要なサイズのPNGに変換されます。
印刷物
高品質印刷には300 DPIの解像度が必要です。SVGから任意のサイズのPNGを作成できます:
- 名刺(91x55 mm)300 DPIで:1075x650ピクセル
- A4ポスター(210x297 mm)300 DPIで:2480x3508ピクセル
- バナー(1x0.5 m)150 DPIで:5906x2953ピクセル
変換時のスケールは、最終解像度が印刷要件に合うように選択されます。
制限と特性
編集可能性の喪失
ラスター化後、SVGはベクター特性を失います:
- 個々の要素の色を変更できない
- テキストを編集できない
- パスを修正できない
- アニメーションを追加できない
PNGは「凍結された」画像です。将来の変更のために元のSVGを保存してください。
インタラクティブ性の喪失
SVGは以下をサポートします:
- マウスイベント(onclick、onmouseover)
- JavaScript操作
- CSSアニメーション
- 画像内のリンク
これらすべてはPNGへの変換時に失われます。インタラクティブ性が重要な場合は、SVGを直接使用してください。
スケールの固定
無限のスケーラビリティがSVGの主な利点です。PNGは画像を特定の解像度に固定します。元のサイズを超えてPNGを拡大すると、ぼやけが発生します。
推奨事項:解像度に余裕を持ってPNGを作成してください。小さな画像を拡大するよりも、大きな画像を縮小する方が良いです。
フォント依存性
SVGのテキストはシステムフォントでレンダリングされます。変換サーバーに特定のフォントがない場合、テキストはフォールバックフォントで表示され、デザインが歪む可能性があります。
解決策:
- 変換前にベクターエディタでテキストをパス(text-to-path)に変換する
- 一般的なシステムフォントを使用する
- base64でフォントをSVGに埋め込む
SVGエクスポートの代替形式
SVGからJPG
透明度が不要な場合、JPGはより小さなファイルサイズを提供します。ただし、JPGは非可逆圧縮を使用するため、グラフィック要素のシャープなエッジにアーティファクトが発生する可能性があります。
SVGからWebP
WebPは品質とサイズのバランスが良い現代的な形式です。透明度をサポートし、PNGより小さくなります。ただし、WebPの互換性はPNGより低いです。
SVGからPDF
印刷用には、PDFはラスター化せずにSVGのベクター特性を維持します。ただし、PDFはWeb環境での使用がより複雑です。
SVGのまま保存
ターゲットプラットフォームがSVGをサポートしている場合は、形式を変更せずにそのままにしてください。SVGは最小サイズと無限のスケーラビリティを提供します。
SVG準備の推奨事項
最適なファイル構造
- viewBoxを使用する - サイズに関係なく座標系を定義
- パスの数を最小限に - 可能な限り結合
- 非表示要素を削除 - どうせPNGには含まれない
- グラデーションを最適化 - 複雑なグラデーションはレンダリング時間を増加させる
変換前のチェック
- ブラウザでSVGを開く - ラスター化後の見え方がわかる
- テキスト表示を確認 - すべてのフォントが読み込まれている必要がある
- 透明度が正しいか確認 - 背景が本当に透明であること
- 詳細度を評価 - 小さな要素は低いスケールで失われる可能性がある
スケールの選択
- 画面用 - scale=1またはRetina用にscale=2
- 印刷用 - 必要なDPIと物理サイズから計算
- アイコン用 - プラットフォーム仕様に従った正確なピクセルサイズ
- アーカイブ用 - 余裕を持って、scale=4であらゆる目的に対応できる品質を確保
SVGからPNGへの変換の用途
アプリアイコンの作成
SVGアイコンをiOS、Android、Webアプリケーション用の様々なサイズのPNGにエクスポート。どの画面でも完璧な鮮明さを実現
SNS用ロゴの準備
ベクターロゴをTwitter、LINE、Instagram、その他SVGをサポートしないプラットフォームへの投稿用PNGに変換
ファビコンの作成
16x16、32x32、48x48ピクセルサイズでサイトファビコン用のロゴのPNGバージョンを生成
プレゼンテーション用エクスポート
PowerPoint、Keynote、Google Slidesへの挿入用にグラフィックスをPNGに変換。正確な表示を保証
印刷準備
名刺、バナー、ポスター用に300 DPIの高解像度でSVGをラスター化。印刷品質を確保
CMS対応
セキュリティ上の理由でSVGをブロックするWordPress、Drupal、その他のコンテンツ管理システムへのアップロード用に変換
SVGからPNGへの変換のヒント
元のSVGを保存する
PNGは画像の「凍結された」バージョンです。将来の変更や他のサイズでのエクスポートのために、オリジナルのSVGファイルを保存してください
余裕を持ったスケールを選択
より大きなサイズのPNGを作成して必要に応じて縮小する方が、小さな画像を品質を損なって拡大するよりも良いです
テキストをカーブに変換
SVGのテキストが正しく表示されない場合は、変換前にIllustratorまたはInkscapeでパス(outlines)に変換してください
透明度を確認
変換前に、SVGが本当に透明な背景を持っていて、要素の下に白い四角形がないことを確認してください