M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2006年7月30日 15:52

ImageMagick(PerlMagick)で文字をぐにょらせるCGIサンプル

このエントリーをはてなブックマークに追加 mixiチェック

http://www.dtpwiki.jp/cgi-bin/secureimage/wavetext.cgi?var=13245

var の後をいろいろ変えてみてね。

#!/usr/bin/perl 
use strict; 
use warnings; 
use CGI; 
use Image::Magick; 
 
# CGI オブジェクト作成 
my $q = CGI->new; 
my $text = $q->param('var'); 
$text or $text = '12345'; 
 
# Image::Magick オブジェクト作成 
my $image = Image::Magick->new; 
$image->Set(size=>'128x128'); # カンバスサイズ 
$image->ReadImage('xc:white'); # バック白 
$image->Annotate( 
text=>$text, 
fill=>'#ff0000', 
font=>'/usr/share/fonts/bitstream-vera/Vera.ttf', 
pointsize=>'24', 
x=>'0', 
y=>'48', 
); # 文字 
$image->Wave('5x20'); # 波状加工 
 
# 画像出力 
print $q->header('image/jpeg'); # ヘッダ 
binmode STDOUT; # Winの時のおまじない 
$image->Write('jpeg:-'); # JPEGで書き出し 
undef $image;

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1758

コメント(6)

突然で、申し訳ありませんが、ImageMagickのスクリプト使用例のサイト色々探したのですが、なかなか参考になるサイトが見つけれず、思い切ってコメント残させていただきます。

スクリプトをコピーして、適当なファイル名で、属性はとりあえず[755]でアップしてアクセスしてみたのですが、表示されません><よろしかったら、アドバイスいただけないでしょうか;;

見ず知らずの人間がこの世な事を言うのは失礼承知で伺わせていただきました。

全く表示されないのか、画像の代わりにエラーメッセージが出るのか、それによっても対処法が変わってくるのだと思いますが、

とりあえず5行目あたりに、

use CGI::Carp qw(fatalsToBrowser);

ていうのを入れると、Perl での実行エラーがブラウザ上に表示されるので便利です。

挿入する前は、画像が無いときに表示されるマークがでました><

CLさんのアドバイス通り5行目くらいに、入れて実行すると
500 Internal Server Error が出てしまいした。

考えれる原因は何でしょうか?度々すみません;;

Image::Magick という Perl のモジュールが入っていない可能性があります。

Image::Magick のインストールは、レンタルサーバであれば、事前にインストールされていないと利用が難しいようです。自前でサーバを運用しているのであれば、インストールは可能ですが、特に Linux においては、パッケージからのインストールの手順がディストリビューションごとに違ったりすることもあります。

僕も、CentOS 4 において、Image::Magick のインストールのエントリを書きました。

M.C.P.C.: CentOS4にImage::Magickを入れる [blog.dtpwiki.jp]

いずれにしても、Image::Magick がご利用の環境で利用できるかどうか確認してください。

ありがとうございます。
アドバイス通りレンタルサーバのほう確認してみます。
ご親切にアドバイスありがとうございました。

分かりやすいImage::Magickのソースだったので、問題なく画像出力できましたが、出力された画像を右クリックして名前を付けて画像を保存しましたが、その後その画像をWクリックしても開けないのです。原因は何でしょうか。画像を無理矢理メモ帳で開いたら元のソースが表示されるだけです。宜しくお願いします。

コメントする