• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Image::Magickの使い方を教えてくださいm(__)m)

Image::Magickの使い方を教えてください

このQ&Aのポイント
  • CGIプログラミング第2版 P383のサンプル"commute_pie2.cgi"が動きません!フォーマットが不正のエラーが出るため、Image::Magickの使い方を教えてください。
  • Image::Magickを使用してフォーマットが不正のエラーが出る問題を解決する方法を教えてください。
  • Red Hat Linux 8でImage::Magickを使用する際にフォーマットが不正のエラーが発生しています。正しいフォーマットの指定方法や解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> my($mgk) = new Image::Magick(format => "png"); http://www.imagemagick.org/script/perl-magick.php を見た感じだと、formatは読み取り専用の属性みたいなので、 その本の記述が古くなっているのでは。 new時のformat指定は不要と思われ。Readの際ImageMagickがよしなにしてくれることを期待したほうが、手っ取り早そうな。

zyousuke
質問者

お礼

osamuyさん、ご返信ありがとうございます。 できました!! そもそもnewでのformat指定は不要だったのですね。 newを引数なしにしたらサンプルが動くようになりました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Image::Magickが突然動作しなくなってしまったので解決策を

    MovableTypeを今まで使用して、画像のサムネイル作成などをおこなっていましたが、突然下記のようなエラーが出るようになってしまいました。 「Internal Server Error・・・・・・・ Apache/1.3.33 Server」 MovableTypeのmt-check.cgiを実行したところ、 このようなメッセージがでます。 「オペレーション・システム: freebsd  Perl のバージョン: 5.6.1  (おそらく) cgiwrap もしくは suexec が有効になっています  Image::Size  サーバには Image::Size がインストールされていました。(バージョン: 2.93).  Image::Magick  サーバには Image::Magick がインストールされていました。(バージョン: 6.2.0).」 MTの他にも、Image::Magickを使ったCGIが動作しません。 サーバーのエラーログをみると、このようなものがありました。 「Can't load '/usr/local/lib/perl5/site_perl/5.6.1/i386-freebsd/auto/Image/Magick/Magick.so' for module Image::Magick: Shared object "libMagick.so.8" not found at /usr/local/lib/perl5/5.6.1/i386-freebsd/DynaLoader.pm line 206. at /usr/local/apache/htdocs/●●.cgi line 1213 Compilation failed in require at /usr/local/apache/htdocs/●●.cgi line 1213. BEGIN failed--compilation aborted at /usr/local/apache/htdocs/●●.cgi line 1213. [Thu Jan 19 11:48:02 2006] [error] [client 210.172.143.2] Premature end of script headers: /usr/local/apache/htdocs/●●.cgi 」 ●●.cgi line 1213 の部分には、use Image::Magickがあります。 今まで、問題なく動作していたので、原因がわかりません。 サーバの設定が突然かわってしまうようなことがあるのでしょうか? また解決策をご存知でしたらぜひよろしくお願いいたします。perlのバージョンは5.6.1です。

    • ベストアンサー
    • Perl
  • Image::Magickの入手法

    Image::Magickが必要なCGIを設置したのですが、 いろいろと探してみたのですが、いろいろあってどれをダウンロードしたらいいのか分かりません。 手当たり次第にサーバーにUPしても500エラーで表示出来ません。 利用してるサーバーではImage::Magickの利用は可能、パスはusr/bin/convert CGIを動かす為のImage::Magickを何処から入手したらいいのか教えて下さい。 以下が問題のCGIです。CAPTCHAを動かすのにImage::Magickが必要らしいです。 http://gingateikoku.com/cgi-bin/bbsnote.zip

    • ベストアンサー
    • CGI
  • Image::Magickの呼び出し

    前の質問が未解決なのですが、同時に進めていたこちらも行き詰ってしまったので恐縮ながら質問です。 Image::Magickを使用したく、以下のサイトを参考にインストールを試みました。 http://www.ss.iij4u.or.jp/~somali/web/_imagemagick.html (当方の環境は、Win XP Home/Apache 2.0をローカルサーバとし、ActivePerl 5.8.7を使用しています。) しかしページどおりに作業をしても、CGIでuse Image::Magickを書いたラインがエラーを返してきます。Can't locate Image/Magick.pm in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at 【CGIファイルの場所】 と返されていました。 解決のために以下のことを確認・実行しました。 (1)(インストーラではチェックを入れたのに)PerlMagickがPerlのsite/libにインストールされておらず、C直下のImageMagickフォルダのなかにありました。(アンインストールの上再インストールをしても同様) よってPerlMagickフォルダ内のReadMeに倣い、PPMからImageMagick.ppdを実行、インストールしました。PPMからquery *を実行すると、ちゃんとインストールされているのが確認できました。 (2)Magick.pmの入っているImageフォルダをC:\Perl\binフォルダの中にコピーし、サーバを再起動。(C:\Perl\binにパスが通っていることは、コマンドラインからPATHを実行して確認済。) それでもやはり動きません…。PCを再起動しても同様です。同じエラーが返ってきます。 モジュールを使うのは初めてで、CPANなどよくわからない部分も多いのですが、もうこれ以上何をしたらいいのかわかりません…。 何か解決策をご存知の方いらっしゃいましたらよろしくご教授下さい。

    • 締切済み
    • CGI
  • Image::Magickのインストールについて

    Image::Magickモジュールのインストールについてお伺いします。目的は、MovableTypeでの使用のためです。 [経緯] CPANでインストールしようとしたらエラーが出たので、/.configure、make、make installでインストールしました(結果は成功、バージョンは、6.1.9)。しかしMovableTypeで画像のサブネイル作成時にエラーが出てしまいました。そこで一旦、make uninstallを行い、再びCPANでインストールを試みましたが、やはりインストールは成功しませんでした。 そこで、良く理解できないままに、CPANで > force install Image::Magick とやってしまいました。結果はやはりエラーとなりました。 [問題] 上記の操作が原因なのか、mt-check.cgiで確認すると、入っていない状態にもかかわらずImage::Magickがインストールされていると表示されてしまいます(入っていると表示されるバージョンは6.1.9です)。 [希望する解決策] 現在の状況から脱し、Image::Magickを正しく機能するようにインストールする方法をお伺いしたいです。もしくは、mt-check.cgiでImage::Magickが入っていない状態であると、現状通りに認識される方法でも構いません。 [マシンの構成] IO-DATAのLANDISKをサーバ化しています。 LINUXはDebianです。以下がphpinfoで取得したsystemです。 Linux landisk 2.4.21 #46 Thu Dec 25 14:39:35 JST 2003 sh4 どうぞ、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • PerlでImage::Magickを使いたい

    PerlでImage::Magickを使いたい ローカルサーバ上でImage::Magickを使いたいのですが、 設定がうまくいかないので質問です。 Win XP AN HTTPD 1.42p ActivePerl 5.10.1.1007 ImageMagick 6.5.9 Q8 ActivePerlは「C:\usr\local\」以下にインストールしました。 ImageMagickは 「ImageMagick-6.5.9-3-Q8-windows-dll.exe」をダウンロードし、インストールしました。 インストール時に「□Install PerlMagick for ActiveState Perl v5.10.1 build 1007」にチェックを入れました。 インストール場所は初期設定のまま、「C:\Program Files\ImageMagick-6.5.9-Q8」としました。 環境変数の設定が必要との説明を見かけたので、 「MAGICK_HOME」「MAGICK_PATH」を作り、値を「C:\Program Files\ImageMagick-6.5.9-Q8」としました。 set MAGICK_HOME で、 MAGICK_HOME=C:\Program Files\ImageMagick-7.5.9-Q8 と出るのを確認しました。MAGICK_PATHも同様です。 (説明しているサイトが複数あり、表記が違っていたので両方作ってみました) コマンドプロンプトで ppm list すると、 ウ Image-Magick ウ 6.5.9 ウ 9 ウ 863KB ウ site ウ と出てきます。 設定後再起動を行い、MT4のシステムチェックを行うと、 Image::Magick サーバーに Image::Magickか、Image::Magickの動作に必要な他のモジュールがインストールされていません。 アップロードした画像のサムネイルを作成する場合に必要となります。 Image::Magickのインストールはインストールマニュアルに沿って行ってください。 と出てしまいました。 以前perlで作成したcgiも動作しません。 ImageMagickのバージョンを微妙に変えてみるなども試しましたが、もうさっぱりです。 助けてください。お願いします:)

    • ベストアンサー
    • Perl
  • VirtualBox上でのImage-Magickインストールについて

    VirtualBox上でのImage-Magickインストールについて。 Mac Snow Leopard上で、virtualbox で windowsXP をインストールし、 Apacke2.2を使ってWeb環境を作成しています。 Perlはstrawberry perl の 5.8 です。 Image-Magick(PerlMagick)をppmを使ってインストールしたのですが、 インストールは成功するのですが、mt-check.cgiでImagekMagickを認識しませんでした。 (CPANでのインストールや、ppmをbribes.org からインストールも試しましたが、こちらはインストールに失敗しましした) 試しに Perlで画像を縮小するスクリプトを実行してみたのですが、 Apacheのエラーログに、「階層が深すぎます。スタックがオーバーフローしました。」 というエラーが出力されていました。 VirtualBoxではなく、純粋に Windows(2000、XP、Vista、7など)にインストールした際には このような現象が起きませんでした。VirtualBoxだからの事でしょうか。 もし回避方法が分かりましたら教えてもらいたいのですが。 よろしくお願いいたします。

  • image::magickのイントール方法

    初めまして、陸奥と言います。 image::magickを利用したCGIの動作確認を行いたくてサーバに インストールを試みようとしているのですが、image::magickが 上手くインストールできなくて困っています。 ググって色んなサイトのイントール方法を試みてはいるのですが ActivePerlやimage::magickのバージョン等の違いからくる相性 の為なのか? インストール方法(PPM)が悪いのか理解できません。 インストール方法の良きアドバイスを頂けたら幸いです。 OS:WinXP SP3 WWW:Apache2.2 Perl:ActivePerl5.8.6

  • ActivePerlでImage::Magick使いたいんですけど助けてください。

    OSはWinXPです。 ちなみにActivePerl-5.10.1.1006-MSWin32-x86-291086.msi(確か)でImage::MagickはImageMagick-6.6.1-Q8です。 perlでためしに作ってみた文章をいじるプログラムを実行すると問題なくできるのですが、画像をいじるプログラムを作って実行すると”core_rl_magick.dllが見つからなかったためこのアプリケーションを実行できません”というエラーメッセージが出ます。ActivePerlとImageMagickをインストールしなおしても同じエラーがでます。 今までは画像をいじるプログラムを実行してもでなかったので対応に困ってます。 最近セキュリティをking softにした時にセキュリティに引っかかったファイルをろくに見ずに消去してしまったので、もしかしたらその中に入っていたのかもしれません。 perlを勉強し始めたばかりなので困っています。もし対処法を知っている方がおりましたら教えてください。 よろしくお願いします。

  • Image::Magickで画像に文字を埋め込む方法。

    こんばんわ。 perlで、画像に文字を入れたいと思います。 そこで、ppmからImage::Magickを入れました。 そして、test.plに以下の様に記述しました。 #!/usr/local/bin/perl use Image::Magick; $p = new Image::Magick; $p->Read("img.jpg"); $p = $p->Transform( geometry=>"240x320" ); $p->Annotate(font=>'C:\Windows\Fonts\arial.ttf', pointsize=>20, fill=>'white', text=>'TEXTTEXTTEXTTEXT', x=>200, y=>150); $p->Write("img.new.jpg"); そして、同じフォルダにimg.jpgを置きtest.plを実行したところ、 画像は215?×320になりましたが、 文字は記述されていませんでした。 Image::Magick perlなどで、検索しているのですが、 なかなか解説しているサイトはありませんでした。 Annotate()の記述が違うのではないかと思うのですが、 正しい書き方を教えて下さい。 どうすれば、文字を載せれるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • Image::Magickを利用して、任意の縦横各サイズを指定したフレ

    Image::Magickを利用して、任意の縦横各サイズを指定したフレーム内に、 縦横比の違う複数の画像ファイルをHTNL側で指定して呼び出すPerlCGIを 作りたいのですが、今のところ下記のようなimg1.cgiとimg2.cgiが分かっています。 img1.cgiは、複数画像の入っているフォルダを指定してHTML側で呼び出せるのですが、 現状サイズ指定はできません。img2.cgiは、Image::Magickを利用してサイズ調整は できるのですが、HTMLからのファイル指定とができません。 指定したフォルダから任意のファイル名をHTMLから呼び出し、元画像の縦横比を 変えることなく、スクリプト内で指定した縦横サイズ内に最大の画像を表示させるには どの様にしたらよろしいでしょうか。ご教授頂ければ幸いです。 宜しく、お願いします。 【img1.cgi】 ===CGI=== #!/usr/bin/perl use strict; my $fileName = $ENV{'PATH_INFO'}; my $view = './gazou'.$fileName; my $extention; if( $fileName =~/.+\.(\w+)/){$extention = $1;} print "Content-type: image/$extention\n\n"; open IMG,"$view"; binmode IMG; binmode STDOUT; while(<IMG>){ print; } close IMG; ===HTML=== <IMG src="img1.cgi/ファイル名.JPG" border="0"> 【img2.cgi】 ===CGI=== #!/usr/bin/perl use Image::Magick; $newwidth = 100; $newheight = 100; $i = Image::Magick->new; $i->Read('./gazou/3.JPG'); $i->Scale(geometry=>geometry, width=>$newwidth, height=>$newheight); print "Content-type: image/gif\n\n"; binmode(STDOUT); $i->Write("jpeg:-"); exit; ===HTML=== <IMG src="img2.cgi" border="0">

    • ベストアンサー
    • CGI
このQ&Aのポイント
  • 工場で使用している樹脂パレット(プラスチックパレット)の荷物を載せる面をフラットにするために、適切なシート状のものを探しています。
  • 以前は段ボールやポリエチシートを使用していましたが、荷物の重さで潰れてしまい効果が薄いです。
  • パレット自体を買い替えるのは予算的に難しいため、手軽な方法で問題を解決したいです。
回答を見る

専門家に質問してみよう