[2005.10.5] ImageMagick の convert コマンドを使うと、サムネール付属の
epsファイルでも jpeg ファイルに変換できることを知りました。これは便利です。
以下の話はもう不要になりましたが、記録のため、残しておきます。
ImageMagick については以下のサイトをご覧ください:
eps2jpg
● イントロ
知人から
- 大量のepsファイルをjpegファイルに変換するにはどうすればよいのか
- それらのepsファイルをブラウズするにはどうすればよいのか
という質問を受けました。使用OSはWindows XPです。まず考えたのは
IrfanView
(日本語版)。
これは色んな種類の画像をサムネール表示して一覧できるし、
ファイルタイプの一括変換も可能なはずです。
ところが調べてみると、サムネール表示可能なepsファイルは、
サムネール用の画像を先頭部分にtiff形式で貼り付けてあるもののみで、
そうでないものは画像で一覧表示できないことがわかりました。
またepsからjpegにも変換できません。
同様な悩みをもつ人はあるようで、
「人力検索サイトはてな」
に
EPSをサムネイル表示してプレビューできるツールのあるサイトってありませんか?tiffのプレビューがない EPSファイルが、大量に手元にあるような状況で、これを簡単にプレビューする方法を探しています。epsから一度jpgに変換するなどして、でもいいのですが、一発で解決できるツールのあるサイトってないでしょうか。
という質問が出ていました。
それに対する回答が
こちらです。
ghostscriptがインストールしてあれば、
Gimpで、[拡張]->[ガッシュ]とメニューをたどって、
サムネール表示できるとのこと。これを試してみるのもよいかもしれません。
それとは別に、 GSview をインストールすれば、
epstool という
epsファイルを操作するツールが自動的にインストールされるということがわかりました。
このリンクからepstoolだけでもダウンロード可能です。
epstoolを使うとプレビューイメージをつけたり、外したり、
サムネイル画像のみを取り出したりすることができます。
これでプレビューの方はなんとかなりそうです。
epsからjpegへの変換は、PhotoshopやPaint Shop Proが使えるのならそれで
一括変換が可能らしいです
(なぜなにGACの記事)。
そういうソフトを持っていない場合は、やはりghostscriptに頼らざるを得ません。
検索するとeps2pngというPerlスクリプトが見つかりました:
これはghostscriptなどを用いてepsファイルをpng/gif/jpegに変換するツールです。
Windows用のghostscriptさえインストールしておけば、jpegに変換することが
可能です。ただし若干スクリプトに手を入れる必要があります。
その説明の前にまず、必要なghostscriptのインストールを先に済ませておきましょう。
● ghostscriptのインストール
- まず奥村さんの
TeX Wiki
の
Windows用TeXインストール解説のページにいきます。
- TeX自身をインストールするわけではないので、最初の辺りはずっととばして、
「環境変数の設定」という項をみて下さい。
PATHという環境変数を設定します。説明にある C:\usr\local\bin は長すぎるので
かわりに C:\bin を指定します。
これはGhostscript自身とは関係がありません。eps2jpgを動かすのに必要になります。
- 上で指定したフォルダを実際に作成しておきます。
Cドライブに binというフォルダを作成して下さい
(すでにある時は、そのままで結構です)。
- 次に「Ghostscriptのインストール」と言うところをしっかり読みながら、
インストールします。
dviout云々というところは読み飛ばして下さい。
「dvipdfmx や dvipdfm で PDF を作る際には,C:\gs\gs7.07\bin にパスを通しておきます。」
に続く説明をよく読んで環境変数PATHに ;C:\gs\gs7.07\bin を追加します
(番号はこれと異なるかも知れません)。
Ghostscriptに関してはこれで大丈夫でしょう。
● Perlのインストール
- eps2png は Perlスクリプトです。実行するためには Perl をインストールする必要があります。
- Windows用のperlには、
ActiveStateのサイトで
配布されているActivePerlが
あります。このリンク先の一番下部に Download というリンクがありますから、
そこからたどって下さい。
最新版と、安定版のふたつがありますから、好きな方のMSI版を選択するとよいでしょう。
日本語によるインストールガイド
も参考になるでしょう。
● eps2jpgのインストール
- eps2pngのページから、
eps2png をダウンロードして下さい。
[Download]をクリックすると圧縮されたものがダウンロードできます。
解凍できない方は[Browse]のほうから直接、scriptフォルダの中の
eps2pngを表示し、
eps2jpg という名前で保存して下さい。
先ほど作成したbinフォルダに保存すると便利です。
- スクリプトが使用する ghostscript 実行ファイルが gs になっています。
170行目あたりに
my $gs0 = "gs -q -dNOPAUSE -r$res -g${width}x$height";
となっているのを
my $gs0 = "gswin32c -q -dNOPAUSE -r$res -g${width}x$height";
に修正してください。これがそのファイルです。
● eps2jpgの試行
- eps2jpgを保存したフォルダにhandle.epsを保存してください。
- コマンドプロンプト(DOSプロンプト)を起動します。
([スタート]->[(すべての)プログラム]->[アクセサリ]->[コマンドプロンプト])
- 「>」の後ろに「cd C:\bin」と入力してエンターキーを押します。
- 表示が「C:\bin>」のようになります。
perl eps2jpg -resolution 82 -verbose handle.eps と入力してエンターキーを押します。
Producing jpg (jpeg) image.
handle.eps: x0=71, y0=592, w=129, h=129, width=148, height=148
Creating handle.jpg
のように表示されれば成功です。handle.jpg が作成されているのを確認してください。
● eps2jpg実行環境の整備
- 実は eps2jpg はプレビュー画像を持ったepsファイルを取り扱うことができません。
したがって、epstool を用いてあらかじめその部分を削除しておかなければいけません。
- epstoolのページ
からzipファイルをダウンロードして適切なソフトで解凍してください。
- 解凍してできるフォルダの中にbinというフォルダがありその中にepstool.exeがあります。
これを C:\bin フォルダにコピーしてください。PATHが適切に設定してあれば、
どこからでも epstool が実行可能です。
- sample.eps というファイルのヘッダ部のプレビュー画像を取り除いた本体部分を抽出して
body.eps という名前で保存するには
epstool -p sample.eps body.eps
のように実行します。ヘッダ部が無い場合はエラーを表示し、何もせず終了します。
- eps2jpg.bat と
eps2jpgwrap.pl の2つのファイルを、C:\bin フォルダに
保存してください。
eps2jpg.bat は次の eps2jpgwrap.pl スクリプトを実行するためのバッチファイルです:
perl c:\bin\eps2jpgwrap.pl %1
eps2jpgwrap.pl は指定したファイルから(必要ならば) epstool を用いて
不要なヘッダ部分を取り除いた後に、eps2jpg を用いて jpeg ファイルを作成する
スクリプトです。
#!/usr/bin/perl
$res = 82; ### as you like it
$tmp_eps = "tmp.eps";
if (-s $tmp_eps ) {
unlink $tmp_eps;
}
my $eps_file;
my $in_file;
my @files = glob(@ARGV[0]);
foreach $eps_file ( @files ) {
if ( $eps_file =~ /^(.+).epsf?$/i ) {
$out_file = "$1.jpg";
}
system("epstool --quiet -p $eps_file $tmp_eps");
if ( -s $tmp_eps ) {
$in_file = $tmp_eps;
} else {
$in_file = $eps_file;
}
system("perl c:\\bin\\eps2jpg -verbose -resolution $res -output $out_file $in_file");
unlink $tmp_eps;
}
eps2jpg実行時の解像度は $res = 82; として 82 を指定しています。
これが不都合ならば適当な数値に書き換えてください。
- jpegに変換したいファイルを適当なフォルダにコピーし、コマンドプロンプトを開き、
cdコマンドを使ってそのフォルダに移動します。例えば C:\pics\tmp に移動するなら
cd C:\pics\tmp
と入力します。そして
eps2jpg *.eps
とすれば、変換が実行されます。このときオプションは指定できませんので、
必要ならば eps2jpgwrap.pl の中で指定しておいて下さい。