ImageMagickでPNGをSVGに:トレース処理を確認
ImageMagick PNG-to-SVG コマンドがパスを作成するかどうか、使用するトレース デリゲート、およびカラー イメージがモノクロ SVG トレースになる理由を調べてください。
目次
ImageMagick は、ビルドと設定でトレース ルートが提供されている場合、PNG から SVG ベクター パスを生成できます。インストールされた ImageMagick 7.1.2-32 セットアップでは、magick color-regions.png traced.svg は Potrace 1.16 を使用し、埋め込まれた PNG ではなく黒いパスを生成しました。また、元の色と明るい色の領域も失われています。そのコマンドがニーズを満たしているかどうかを判断する前に、インストールされたデリゲートと保存されたファイルを確認してください。
同じ PNG のオンライン トレース ルートが必要な場合は、PerfectVector を無料で始めて、プレビューのカラー領域と開口部を調べてください。編集とエクスポートには、ロックが解除された結果が必要です。このガイドでは、ローカルの ImageMagick ルートを診断します。ツールの出力品質を比較するものではありません。
症状から始めて、パイプラインを検査します
正常に開く SVG であっても、不適切な場合があります。カラーが必要な場合はモノクロであったり、パスが必要な場合はラスター イメージが含まれている可能性があります。失敗したコマンドは別の症状であり、実際のエラー メッセージが必要です。ファイル名の拡張子だけでは、これらの疑問を解決することはできません。
デリゲートは、ImageMagick がタスクのために呼び出す外部プログラムです。そのリソース ドキュメントでは、デリゲートの構成について説明しています。マシン上の実際の構成を記録します。別のインストールからコピーされたコマンドは、別のルートをたどることができます。
このチェックには、PNG のコピー、インストールされた ImageMagick、ターミナル、プレーンテキスト エディター、および SVG ビューアが必要です。ソースを変更しないで、各テスト出力に新しいファイル名を付けます。この例では Potrace もインストールされています。これはテストされた環境の一部であり、すべての ImageMagick インストールが必ずしも共有する依存関係ではありません。

1. インストールされているバージョンとデリゲートを記録します。
ターミナルで次のコマンドを実行します。
magick -version
magick -list delegate
magick -list formattrace エントリのデリゲート リストを読み、そのエントリに名前が付けられているプログラムをメモします。リストには次の行が含まれていました。
pnm<= trace "'potrace' --svg --output '%o' '%i'"これは構成エントリであり、シェルに貼り付けるコマンドではありません。外部トレース プログラムとして Potrace を指定します。実際に保存した SVG には、その構成を観察された出力にリンクする Created by potrace 1.16 メタデータも含まれていました。
ImageMagick 形式リストは形式のサポートを確認するのに役立ちますが、SVG レンダリングに関する注意事項をよく読んでください。Inkscape、RSVG、MSVG の入力/レンダリング情報は、どのプログラムが PNG を SVG にトレースしたかを証明しません。 SVG の読み取りとトレースの書き込みは異なる方向です。
別のマシンの動作が異なる場合がある理由
公式 7.1.2-32 ソースの SVG ライター には、コンパイルされた AutoTrace サポート、構成された TRACE デリゲート、およびそのブランチでトレース デリゲートが見つからない場合の埋め込み PNG フォールバック用の個別のルートが含まれています。これが、「ImageMagick は常にトレースする」も「ImageMagick は PNG のみを埋め込む」も信頼できる包括的な答えではない理由です。
ソースには利用可能なブランチが記載されています。実際のコマンドによって、どのような結果が得られたかが決まります。デリゲートなしですべてのブランチやマシンをテストしたわけではありません。上記のバージョンは、インストールされたテスト バージョンであり、最新の ImageMagick リリースに関する主張ではありません。
2. SVG を保存し、その内容を確認します
許可された独自の PNG コピーを使用してください。正確なテスト コマンドは次のとおりです。
magick color-regions.png traced.svgcolor-regions.png を入力ファイル名に置き換え、新しい出力名を使用します。コマンドが失敗した場合は、関係のないレンダリング設定を試す前に、エラーを保持し、構成されたプログラムを検査してください。リストされたデリゲート自体は、その実行可能ファイルが利用可能で動作していることを証明するものではありません。
保存した SVG をテキスト エディタで開きます。 <path> などの実際の形状要素、任意の <image> 要素とその参照コンテンツ、および個々のパスと親グループの両方の塗りつぶしを探します。パスは周囲のグループから黒の塗りつぶしを継承できます。すべてのパス ラインに色が表示される必要はありません。
私たちのファイルでは、親グループが fill="#000000" を提供し、2 つの path 要素が保持された形状を記述していましたが、image 要素はありませんでした。これは実際のパス ジオメトリですが、元のパレットやすべての領域が残っていることを意味するものではありません。混合ファイルまたは画像ベースのファイルの場合は、ズームのみから推測するのではなく、SVG ラスター コンテンツ検査ガイドを使用してください。
このインスタレーションでカラー PNG がどのように変化したか
透明な背景に空の中心を持つネイビーの長方形フレーム、金色の円、青緑色の三角形を含むオリジナルの 320 × 240 RGBA PNG を作成しました。透明なピクセルには白の RGB サンプルがありました。 ImageMagick 7.1.2-32 で上記のコマンドを実行し、Potrace 1.16 をインストールしてから、実際の SVG ソースを検査して個別にレンダリングしました。
| チェック | オリジナルPNG | 実際に保存されたSVG |
|---|---|---|
| ネイビーフレーム | #17344d | 黒のジオメトリが保持される |
| ティールトライアングル | #347f78 | 黒のジオメトリが保持される |
| ゴールドサークル | #e5aa39 | 不在 |
| フレーム開口部と外部スペース | 透明 | レンダリング結果が透明になる |
| ファイル構造 | ラスターピクセル | 2 つのパス、画像要素なし |
Potrace マニュアル では、非バイナリ入力は輝度カットオフを使用して白黒に変換されると説明されています。モノクロ トレース ルートは、ソース パレットを別個の色付き領域として運びません。この特定の実行では、明るい金色の円が消え、暗いフレームと三角形が黒になりました。
入力解像度を上げるか SVG ファイル名を変更しても、モノクロの結果をカラー トレースに変えることはできません。色に意味がある場合は、カラー トレース ワークフローを選択し、結果の領域を検査します。意図的に 1 色のアートワークが必要な場合は、明示的な Potrace PNG の準備とトレースのワークフローを使用して、その個別のタスクを制御します。
これは、以前の穴付き正方形コントロールによってサポートされていた、インストールされた 1 つのビルド上の 1 つのオリジナルのカラー器具でした。これはデジタル ファイルの検査であり、編集者によるインポート、印刷、またはカットのテストではありませんでした。パス数はこの出力を説明します。それは品質スコアではありません。
サイズ単位をパス構造から分離してください
保存された SVG は、width="320.000000pt"、height="240.000000pt"、および viewBox="0 0 320.000000 240.000000" を宣言しました。数値が一致しても、ポイント、ソース ピクセル、SVG 座標は交換可能になりません。 SVG インポート サイズのトラブルシューティング ワークフローを使用して、目的の物理サイズを個別に確認してください。
出力に一致する修正を選択してください
| 観測結果 | 次のアクション | 検証 |
|---|---|---|
| 黒いパスですが、色の領域が必要です | カラートレースワークフローの選択 | 重要な領域と塗りつぶしを元の PNG と比較します |
| 黒いパスは意図されたアートワークです | モノクロ路線を貫く。欠けている詳細を検査する | コントラストのある背景でシルエットと必要な開口部を確認します。 |
| SVG には、必要な形状の代わりに埋め込まれた PNG が含まれています | インストールされているトレース ルートを確認するか、専用のベクタライザーを使用してください | 置換ファイルのオブジェクトと参照イメージを検査する |
| デリゲート関連のコマンドエラー | エラーを読み、その指定されたプログラムの可用性と構成を確認します。 | その特定の問題を修正した後、同じ許可された小さな入力を繰り返します |
| パスは存在しますが、別のアプリではサイズが間違っています | 単位と原稿の寸法を個別に確認する | 受信アプリで意図したサイズを確認してください |
コマンドの実際のエラーとインストールされている構成が修復の指針となるはずです。このウォークスルーでは、実行可能ファイルの欠落やポリシー エラーの環境は再現されていないため、これらのエラーに対する普遍的な修正は規定されていません。
SVG が必要なカラー アートワークの場合、PerfectVector はオンラインの PNG からベクターへのワークフローを提供します。元の PNG から始めて、プレビューのシルエット、色の領域、空のスペースを比較します。正確なブランドの色や小さな文字については、検査と修正が必要な場合があります。重要な輪郭が不明瞭な場合は、次のステップとして意図的に再描画する方が有効な場合があります。 PNG から SVG への品質ガイドでは、これらのソースと詳細な決定について説明しています。
出力タイプに名前を付け、関連するトレース ルートを特定し、それが色のニーズを満たしているかどうかを説明できたら、診断は終了です。ソース、保存された SVG、バージョン/設定メモを一緒に保管してください。 PNG をオンラインで試してみるには、PerfectVector を無料で始めて、プレビューのカラー領域と開口部をオリジナルと比較して確認してください。
よくある質問
ImageMagick は PNG を実際の SVG パスに変換できますか?
はい、インストールされたビルドと構成がトレース ルートを提供する場合は可能です。 ImageMagick 7.1.2-32 セットアップでは Potrace 1.16 を使用し、画像要素なしで実際のパスを保存しました。すべてのインストールが同じように動作すると仮定するのではなく、独自の出力を検査してください。
ImageMagick SVG が白黒になったのはなぜですか?
構成されたモノクロ トレース デリゲートは、その結果を説明できます。私たちのテストでは、Potrace は暗い領域から黒いパスを生成し、明るい金色の円を省略しました。カラー トレースの代替を選択する前に、代理オブジェクト リストと保存された塗りつぶしを確認してください。
形式リストの SVG エントリはカラー トレースを保証しますか?
いいえ。形式サポートだけでは、出力トレース実装を特定したり、パレットが保持されていることを証明したりすることはできません。インストールされたデリゲート構成を読み取り、保存された SVG を検査します。
PNG カラーを復元するには、RSVG または MSVG 設定を変更する必要がありますか?
まず、出力トレース ルートを特定します。 SVG レンダリング設定と PNG をトレースするプログラムは、さまざまな質問に答えます。モノクロの結果は Potrace トレース デリゲートを通じて得られたため、次の決定はモノクロ トレースがアートワークに適しているかどうかでした。
情報源
- ImageMagick リソース — 設定ファイルと外部デリゲート。
- ImageMagick 画像形式 - インストールされている形式のリストと SVG レンダリングに関するメモ。
- ImageMagick 7.1.2-32 SVG ライター — バージョン固定トレースと埋め込み画像ブランチ。
- Potrace マニュアル — モノクロ入力の解釈とトレース動作。


