PerfectVector
著者: Jay

画像ベクター化APIとPotraceの比較:本番向けの選び方と検証手順

ホスト型の画像ベクター化APIとローカルのPotraceを比較します。単色と2色のテスト画像から、自分のSVG作成フローに合う方法を判断できます。

1 分で読める
目次

画像を単色の前景と背景に分けられるなら、ローカルで動かすPotraceが向いています。画像をアップロードし、HTTP経由で結果を受け取りたいアプリには、ホスト型の画像ベクター化APIが向いています。複数の色を区別する必要があるなら、どちらを採用するか決める前に出力で色を確認してください。

お手持ちの画像で試す
フル機能のツールを開く
無料でお試しいただけます。画像をドロップすると、登録なしでベクターのプレビューを確認できます。

処理が行われる場所を比較する

比較項目自分のマシンやサーバーで動かすPotracePerfectVector Developer API
入力単体のCLIはPBM、PGM、PPM、BMPなどのビットマップ形式を読み込みます。PNGやJPEGは別の画像ツールで前処理します。v1 APIでは、条件を満たすPNG、JPEG、WebPをマルチパートでアップロードできます。
トレースCLIがしきい値でピクセルを前景と背景に分けます。前処理としきい値をバージョン管理すれば結果を再現できます。元のラスター画像を送ってSVGを受け取ります。トレースはサービス側で行います。
運用ツールをインストールし、計算資源を確保し、ローカル実行の結果を記録します。APIキーを管理し、本番の既定同時実行数を守り、結果のリンクが切れる前にSVGを保存します。
運用費計算資源、デプロイ、保守の費用を見込みます。本番変換が成功するとAPIクレジットを消費します。テストキーでは固定のサンプルSVGが返ります。

Potraceの列は、既定の単色トレース方式を含む標準CLIを対象にしています。APIの列はPerfectVector v1の仕様です。他社サービスでは入力の制限、料金、ダウンロードのルールが異なる場合があります。Potraceのマニュアル · PerfectVector APIの制限 · PerfectVectorの結果 · PerfectVector APIクレジット

2枚のPNGをPotraceで1回ずつ処理した結果

256 × 256ピクセルのテスト画像を2枚作りました。1枚は透過した穴のある暗色の丸いマーク、もう1枚は赤と青の領域が接した画像です。各PNGを白地に合成し、グレースケールのPGMにして、Potrace 1.16のブラックレベル0.5でトレースしました。ブラックレベルは暗い前景と明るい背景の境目となる値です。

元画像PotraceのSVGで確認した内容適した用途
透過した穴のある暗色のマーク2つのサブパスを含む黒いパスが1本。ImageMagickで描画すると外側と中央は透過し、マークは不透明でした。穴を残す必要がある単色のシルエット。
接した赤と青の領域1つのサブパスを含む黒いパスが1本。どちらの領域も中央が黒く描画されました。単一のシルエット。元の色の境界が重要なら、別の前処理が必要です。
ローカルPotraceのテスト
2枚の元PNGとローカルPotraceで生成したSVG。丸いマークの穴は残り、接した青と赤の領域は一つの黒いシルエットになります。
左は元のPNGです。右は同じグレースケールの条件でPotraceにかけたSVGです。

どちらの出力にもパスが含まれ、ラスター画像の埋め込みはありませんでした。これはローカルで行った2回のトレースの観察結果です。コマンドラインの手順は、Potrace向けにPNGを前処理する方法を参照してください。

自分のファイルで同じ条件のテストを行う

穴が重要な単色マークと、隣り合う色を区別したい画像を1枚ずつ用意します。トレース前に要件を書き出します。例えば、穴から背景が見えること、実際に使う大きさで隣の色が別の領域として見えることなどです。

  1. 両方の方法で同じ元ファイルを使います。Potraceでは合成の背景色、グレースケール変換、しきい値を記録し、前処理したビットマップをSVGと一緒に保存します。
  2. PerfectVectorのテストキーでアップロード、応答処理、SVGのダウンロードを確認します。固定のサンプルSVGで接続を検証し、画質は本番キーと同じ元ファイルで確認します。PerfectVectorのテストモード
  3. 両方の出力を、実際に使う同じビューアーかエディターで開きます。輪郭、色の分離、穴、ラスターの埋め込みを確認し、手作業で修正が必要な箇所を記録します。

ここではPotraceをローカルで実行し、ホスト型APIの仕様は公開ドキュメントで確認しました。上の表はローカル出力の確認結果です。自分の処理環境で同じ元画像を使えば、上の手順でホスト型のトレース品質を比較できます。

よくある質問

Potraceは1回の処理で全色を保持できますか?

標準のPotraceは前景と背景をトレースします。色を扱うには、必要な色ごとにマスクを作ってトレースを組み合わせるか、色対応のベクター化ツールを同じ入力で評価します。Potraceのマニュアル

PerfectVectorのテストキーでロゴの変換結果を確認できますか?

条件を満たす画像には、いつも同じサンプルSVGが返ります。テストキーはリクエストとダウンロードの確認に使います。送った画像をトレースするには本番変換を使います。PerfectVectorのテストモード

参考資料

  1. Potrace — マニュアル — 標準CLIの入力、しきい値、SVG出力。
  2. PerfectVector — APIの制限 — 対応ファイルと既定の同時実行制限。
  3. PerfectVector — 結果 — SVGのダウンロードと有効期限。
  4. PerfectVector — APIクレジット — 本番変換の成功時のクレジット消費。
  5. PerfectVector — テストモード — 固定出力と本番変換との違い。

PerfectVector Developer APIを開き、自分の元画像1枚をテストキーで試してください。サンプルをダウンロードできたら本番変換を行い、重要な穴や色がローカルの結果と比べてどう残るかを確認します。

ブログのその他の記事

PerfectVector

画像を
きれいで編集可能なベクターパスに変換

ベクター化とプレビューの確認は無料で、1日あたりの上限はありません。