HEIC2ALLHEIC2ALL
もっと見る

PNG/JPGからSVGへの変換がうまくいかない?よくある問題と解決方法

ジャギー、膨れ上がったファイル、多すぎるノード、一致しない色――SVG変換の問題のほとんどは、原因を理解すれば簡単に解決できます。

今すぐ変換

なぜSVGの見た目がおかしいのか?

PNGやJPGをアップロードして変換ボタンを押したのに、出力されたSVGの見た目が…おかしい。エッジがギザギザだったり、ファイルが巨大だったり、何千もの不要なノードがあったり、色がオリジナルと合わなかったり。あなただけではありません――これらはラスターからベクターへの変換で最もよくある問題です。

良いニュースがあります。これらの問題のほぼすべてに解決策があり、そのほとんどは設定を数秒調整するだけで解決できます。重要なポイントは、トレースは単なるフォーマット変換ではないということです。ラスター画像をSVGに変換するということは、アルゴリズムがピクセルデータをベクターパス(曲線、直線、塗りつぶし)として数学的に近似することを意味します。その近似の品質は、ソース画像と選択したトレース設定に依存します。

このガイドでは、最もよくある5つの変換問題を解説し、それぞれの原因と具体的な解決方法をお伝えします。このトピックが初めての方は、SVGとは?の入門記事で基本を確認し、ラスター vs ベクターの比較記事で2つのフォーマットの違いを理解してください。

問題1:ジャギーまたは階段状のエッジ

ジャギー(階段状のエッジやエイリアシングとも呼ばれます)は、初めての変換後に最もよくある問題です。滑らかな曲線ではなく、ブロック状でピクセル化されたアウトラインが表示され、元のラスター画像よりも悪く見えます。

なぜ起こるのか

トレーサーが滑らかな曲線を再構築するのに十分な情報を持っていない場合にジャギーが発生します。通常、以下の1つ以上が原因です:ソース画像の解像度が低すぎる、ディテール設定(ラインとカーブのしきい値)が厳しすぎる、または色数が少なすぎてトレーサーがエッジと背景を区別できない。

解決方法

  • ディテールを増やす。Any2SVGでラインとカーブのしきい値を下げて、トレーサーがショートカットせずにエッジをより忠実に追跡するようにします。
  • 色数を増やす。色数を増やすことで、トレーサーがより繊細な色の遷移を認識し、より滑らかな境界を生成できます。
  • 高解像度のソースを使用する。100 × 100 pxのアイコンは、同じグラフィックの800 × 800バージョンに比べて、トレーサーに与える情報がはるかに少なくなります。可能な限り、最も大きなソースから始めてください。
  • ブラー前処理を有効にする。軽いガウシアンブラーがトレース開始前にピクセルレベルのノイズを滑らかにし、アルゴリズムがよりクリーンな曲線を生成するのに役立ちます。

推奨設定を含むステップバイステップのガイドは、PNGからSVGへのガイドをご覧ください。

問題2:ノードが多すぎる / パスが過度に複雑

コードエディタでSVGを開くと何千行もあります。ズームインすると、トレーサーが大量のアンカーポイントを作成しており、その多くが冗長であることがわかります。ファイルのレンダリングが遅く、デザインツールでの編集が困難で、ファイルサイズが制御不能になっています。

なぜ起こるのか

ソース画像のすべての色の遷移、ノイズの斑点、テクスチャの細部が、個別のパスまたはアンカーポイントになります。多くの色、細かいテクスチャ、またはセンサーノイズを持つ画像(特に写真)は、劇的に複雑なSVGを生成します。JPEGの圧縮アーティファクトは、トレーサーが忠実に再現する何千もの小さな色の変化を導入するため、問題を悪化させます。

解決方法

  • 色数を減らす。量子化された色が少なければ、個別の領域とパスも少なくなります。
  • パス最適化を上げる。Any2SVGの最適化設定は、トレース後に冗長なアンカーポイントをマージして簡略化します。
  • 座標精度を下げる。パスデータの小数点以下の桁数を減らす(例:3から1に)と、目に見える品質の低下なしにノード数を大幅に削減できます。
  • 被写体にクロップする。変換前に不要な背景領域を削除します。画像面積が小さければ、パスも少なくなります。
症状考えられる原因推奨される解決策
何千もの小さなパス色が多すぎるまたはノイズの多いソース色を8〜16に減らす、ブラーを有効にする
粗く過度に詳細なエッジ最適化が低すぎるパス最適化設定を上げる
巨大な座標文字列小数精度が高い精度を小数点以下1〜2桁に減らす
背景ノイズがトレースされているソース画像がクリーンでないタイトにクロップ、ブラー前処理を使用

覚えておいてください:写真は本質的に複雑です。ソースがグラフィックではなく写真の場合、ある程度のパスの複雑さは避けられません。クリーンなソースの準備方法については、ロゴSVGガイドをご覧ください。

問題3:SVGファイルサイズが大きすぎる

ソースのPNGは50 KBだったのに、出力されたSVGは500 KB、場合によっては数メガバイトにもなります。これは特に写真や詳細なイラストを変換する際によくあることで、SVGをWeb用途に使うには非現実的です。

なぜ起こるのか

SVGのファイルサイズはパスの複雑さに直接比例します。すべてのアンカーポイント、すべての色領域、座標のすべての小数桁がバイトを消費します。シンプルなフラットグラフィックは小さなSVGを生成します。多くの色、グラデーション、テクスチャを持つ複雑な画像は、ラスター版よりもはるかに大きなSVGを生成します――ラスター形式は効率的なピクセル圧縮を使用しますが、SVGはすべての曲線をテキストで記述するためです。

解決方法

解決策はノードが多すぎる場合と同じです:色を減らし、最適化を上げ、精度を下げ、被写体にクロップします。さらに:

  • 入力画像を小さくリサイズする。4000 × 3000のソースは800 × 600バージョンよりもはるかに多くのパスを生成します。SVGは一度作成されれば解像度に依存しないため、小さい入力をトレースした方が良い結果が得られることが多いです。
  • ソースを簡略化する。画像を前処理できる場合(背景の削除、コントラストの向上、グラデーションの平坦化)、トレーサーが再現すべき視覚的ノイズが減ります。
画像タイプ予想されるSVGサイズ備考
シンプルなロゴ(2〜4色)2〜10 KBトレースに最適
アイコンまたはラインアート5〜30 KB非常に良好、最適化が必要な場合あり
フラットイラスト20〜100 KB良好、大きすぎる場合は色を減らす
詳細なイラスト50〜300 KB積極的にクロップと最適化
写真500 KB〜5+ MB非推奨、ラスター形式を使用

問題4:SVGが元の画像と一致しない

変換はエラーなく完了したのに、SVGがソースとは明らかに異なって見えます――色がずれている、細部が欠けている、全体の形状が変わっているなど。これはグラデーション、シャドウ、似た色が多い画像で特によく見られます。

なぜ起こるのか

トレースは常に近似です。アルゴリズムはソースの何百万もの色を限られたパレットに量子化し、似た色の領域の周りにベクター領域を描きます。トレーサーの解像度しきい値以下の細部は失われます。グラデーションはフラットカラーの段階的な帯になります。アンチエイリアスされたエッジは単一の曲線に簡略化されます。これらは自動トレースの固有の制限であり、バグではありません。

解決方法

  • 色数を増やす。より多くの色があれば、トレーサーが使えるパレットエントリが増え、オリジナルにより近い結果が得られます。
  • ディテールを増やす。ラインとカーブのしきい値を下げて、トレーサーがより細かい形状をキャプチャし、スムーズ化しないようにします。
  • トレードオフを受け入れる。トレースはハイコントラストでシンプルな画像(ロゴ、アイコン、ラインアート)に最適です。複雑な画像のピクセルパーフェクトな再現が必要な場合は、ラスター形式が適切なツールです。詳しくはラスター vs ベクターの比較記事をご覧ください。

テキストを含む画像の場合、トレーサーは文字の形をパスに変換し、編集可能なテキストにはならないことに注意してください。結果は近く見えますが、元のレンダリングされたフォントほど鮮明ではありません。

問題5:SVGにJPEG圧縮アーティファクトが含まれる

ソースがJPEGで、出力されたSVGがブロック状のにじみ、エッジ周りのハロー、元の画像では見えなかった奇妙な色の帯で満ちています。SVGがなぜか元のJPGよりも悪く見えます。

なぜ起こるのか

JPEG圧縮は画像を8 × 8ピクセルのブロックに分割し、各ブロック内の色の精度を下げることで機能します。通常の表示サイズではこれらのアーティファクトはほぼ見えませんが、トレースアルゴリズムはそれらを本物の色の遷移として検出し、1つ1つ忠実にトレースします。その結果、ラスター版では隠れていた圧縮アーティファクトを増幅するSVGが生成されます。

解決方法

  • ブラー前処理を有効にする。トレース前のガウシアンブラーパスがブロック状のノイズやリンギングアーティファクトを滑らかにし、トレーサーがそれらを再現しないようにします。
  • 可能であればPNGソースを使用する。PNGはロスレスなので、トレーサーが拾う圧縮アーティファクトがありません。選択肢がある場合は、トレースソースとしてJPGよりも常にPNGを優先してください。
  • 色数を減らす。量子化された色が少なければ、トレーサーがアーティファクトレベルの色の変化に対して個別のパスを作成する可能性が低くなります。

JPEG固有のアドバイスについては、ロッシーソース画像の最適な設定をカバーするJPGからSVGへのヒントの記事をご覧ください。

より良い結果を得るために

SVG変換の問題のほとんどは、ソース画像の複雑さとトレース設定のミスマッチに起因します。クリーンなエッジと少ない色のシンプルなグラフィックは、最小限の調整で美しくトレースできます。複雑な画像にはより多くの注意が必要です――そして時には、その特定の画像にはラスター形式の方が適切であるというのが正直な答えです。

要約すると:手持ちの最良のソースから始め、色を許容できる最小限に減らし、ノイズの多いソースやJPEGソースにはブラーを有効にし、パス最適化を上げ、被写体にタイトにクロップします。これら5つのステップで変換問題の大部分が解決します。

もう一度試す準備はできましたか?Any2SVGで設定を調整して再変換してください。すべてブラウザ内で実行されるため、繰り返しは瞬時に行え、ファイルはプライベートに保たれます。