2006
10/21

PoTrace は、BMP などのビットマップ画像を EPS、SVG や PDF などのベクタ画像に変換するユーティリティです。コマンドラインツールなので、毎回手動で入力ファイルを指定するのは面倒かも・・・というわけで、バッチファイルを書いてみました。

このバッチファイルを使えば、複数の入力ファイルをまとめて変換できたり、PNG など PoTrace が対応していないフォーマットの画像をいったん BMP に変換してからベクタ画像に変換することも可能です。

PoTrace について

PoTrace について日本語で解説しているページもあるので、詳しくはそちらを参考にしてください。

動作に必要なもの

  • Potrace
  • ImageMagick(BMP 以外のラスタ画像を変換元ファイルとして使用する場合)

バッチファイルのダウンロード

potrace_helper.zip - Windows Live (2006-11-12 更新)

リンクを右クリック -> Firefox なら [名前を付けてリンク先を保存] 、IE なら [対象をファイルに保存] から保存することができます。

使用手順

  1. potrace_helper.zip を解凍します。
  2. potrace_helper.bat を適当な場所(たとえば、potrace.exe と同じフォルダ)に置いてください。
  3. 必要があれば、potrace_helper.bat を編集します。
    • 3 行目の「rem #--- 初期設定 ---」から「rem #--- 初期設定終わり ---」までが、このバッチファイルを使用する前に設定すべき項目です。各項目の内容について、詳しくはバッチファイル内のコメント(rem から始まる行)を参照してください。
    • バッチファイルが potrace.exe と同じフォルダにあり、かつ、入力ファイルが BMP なら、そのままでも動作します。
  4. 変換したいラスタ画像(BMP や PNG など)を potrace_helper.bat (または、そのショートカット)にドラッグ&ドロップしてください(下記の「使い方のヒント」を参照)。
    • 複数の画像をまとめて渡すことができます。
    • BMP 以外の画像ファイルを使用する場合は、ImageMagick が必要です(初期設定)。
  5. すると、元のラスタ画像と同じフォルダにベクタ形式に変換された画像が出力されます。

使用例

  • 変換元の PNG ファイル(1bitPaper で適当に描いたもの)
    20090311020245p:image

  • 変換後の SVG ファイルを Inkscape で開いたところ

    20090311020246p:image

    ↓このようにベクタ形式に変換されています。

    20090311020247p:image

使い方のヒント

[送る] から画像ファイルを渡す

ショートカットを作成して SendTo フォルダに置くと、[送る] メニューから画像をバッチファイルに渡すことができます(ファイルを選択 -> 右クリック -> 送る -> バッチファイルのショートカット)。SendTo フォルダは、「C:\Documents and Settings\ユーザー名\SendTo\」にあります(Windows XP の場合)。

オプションを指定するには

PoTrace にはいくつかのオプションが用意されていますが、このバッチファイルでは出力フォーマットの指定以外はデフォルトのままです。その他のオプションを指定するには、バッチファイルを直接変更するか初期設定の output_format で追加指定します。

バッチファイルを直接変更するなら、potrace から始まる次の 1 行を書き換えます。

potrace --backend %output_format% "%~dpn1.bmp"

例えば、階調の反転(-i)とプログレス表示(--progress)を行いたい場合は、以下のようにオプションを追加します。

potrace -i --progress --backend %output_format% "%~dpn1.bmp"

また、初期設定の output_format で指定する場合は、出力ファイル形式の指定の後にその他のオプションを追加します。この場合、必ず先に出力ファイル形式を指定する必要があります。次のように書くと、上の例と同じオプションが適用されます。

set output_format=svg -i --progress

PoTrace で利用可能なオプションについては、faLog | Potraceでラスタ画像をベクタ画像に変換で説明されています。

注意

  • Windows XP SP2 (Home Edition)で動作確認しています。他の Windows OS で動く保証はありません。
  • potrace_helper.bat を編集するとき、ダブルクリックや右クリックメニューの「開く」で開くことはできません。右クリックメニューの「編集」かメモ帳にドラッグ&ドロップして開いてください。
  • 入力ファイルが BMP か ImageMagick で変換可能なファイルでないとエラーが出ます。ImageMagick でサポートされている画像フォーマットについては、ImageMagick: Formats を参照。
  • PoTrace 自身は、PBM、PGM、PPM の入力にも対応していますが、このバッチファイルでは BMP 以外のファイルはすべて ImageMagick に持っていくようになっています。
  • 入力ファイルが BMP か否かは、拡張子を見て判断しています。

更新履歴

  • 2006-10-21: 公開。初版。
  • 2006-10-22: 第 2 版。
    • パスの最後に \ 記号を含まなくても処理できるようにした。
    • ImageMagick のパスが正しいかどうかをチェックするようにした(代わりに convert.exe が存在するか否かのチェックをなくした)。
  • 2006-11-12: 第 3 版。
    • 念のため、カレントディレクトリの変更時に、ドライブも変更できるオプションを指定するようにした。
  • 2007-10-01: FTP アップロード時に改行コードが変更されるため、ZIP 形式での配布に変更した(バッチファイルの内容に変更はありません)。



コメント(過去分)

※コメントがインポートできなかったため、旧ブログ時代にいただいたコメントについては、記事の末尾に再掲載する形を取らせていただいています。

大変参考になりました。

大変参考になりました。ありがとうございます。
potraceすごいですね・・・感動しましたTT
あと、なぜか僕の環境(winxp sp2 IE6.0)ではバッチファイルをダウンロードするとCRLFではなくCRになっていて実行時にエラーが出てたことを報告しておきます??

Posted by ひろゆ at 2007/09/30 (Sun) 05:40:14

修正しました。

サーバーにアップロードする際に改行コードが変更されてしまっていました。ZIP 形式で圧縮したものをアップロードし直しました。これでたぶん大丈夫だと思います。

ご指摘いただきありがとうございました。

Posted by にーやん at 2007/10/01 (Mon) 02:09:18

RELATED POSTS

にーやん(niiyan)の雑記ブログです。

デザイン、プログラミング、動画など、興味のあることを書いてます。