ImageMagickが壊れた?

未分類 No Comments »

WindowsVistaにインストールしてあるImageMagick6.3.2 Q8をPerlから呼び出すときのお話です。
少しの間、開発を停止していた部分を手直しすることになって画像を生成する部分が正常に動かなくなっていました。
ログをみると次のようなエラーが表示されていました。

Can't load 'C:/Perl/site/lib/auto/Image/Magick/Magick.dll' for module Image::Magick: load_file:再帰が深すぎます。スタックがオー
バーフローしました。 at C:/Perl/lib/DynaLoader.pm line 230,  line 855.


呼び出し元も、呼び出し先も階層がそんなに深いわけでもなく、動いていたときのままです。
何かのパッチでおかしくなったのかもしれないです。
そういえば、最近CPANの一括updateをしたような・・・
いろいろ調べてみましたが、これだという原因は見つかりませんでした。

結局、ImageMagickを一度アンインストールしてから入れなおしたところ、正常に動作しました。
ちなみに、上書きで更新した場合は同じメッセージが表示されて動きませんでした。
お仕事用のシステムなので、ヒヤヒヤしました。ほっと一安心です。

イラレと同じ大きさの画像を作る

PostScript No Comments »

ImageMagickでEPSを背景なしのpngにする方法があったけど、やり方をすっかり忘れてしまったので、GostScriptにお願いすることに。

・イラストレータで見た大きさと同じ画像に変換するには「-r72」のおまじない
・背景を透明にするには「-sDEVICE=pngalpha」のおまじない

を唱えよう

gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop -r72 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile=output.png input.eps

Windowsの場合はgsではなくgswin32cになります。

Perl:PerlMagickのannotateでrotateを指定する場合

Perl No Comments »

図形をrotate する場合は普通に左下が始点だけど、

annotateのパラメータとしてrotateを使う場合は、

左のベースラインが基準になるので、微妙な位置に描かれてしまう。

ベースラインは文字の高さの12.5%の位置。つまり72ptなら

72 * 0.125 = 9

左下から9ptの位置になる。

しかしここを基準に回転させるので実際には、

72  - 9 = 63

63pt分、上にシフトさせてやれば希望の位置に収まる。

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン