2011-07-28 7 views
0

イメージにテキストを追加する簡単なスクリプトを作成しています。私のスクリプトを何回か繰り返して、間違いを探した後、私は最終的にphp.netからサンプルを実行しようと決心しました。同じ、わかりにくいエラーが発生しました:「フォントメトリクスを照会できませんでした」。コードは次のとおりです:Imagick:フォントメトリクスのクエリに失敗しました

/* Text to write */ 
$text = "Hello World!"; 

/* Create Imagick objects */ 
$image = new Imagick(); 
$draw = new ImagickDraw(); 
$color = new ImagickPixel('#000000'); 
$background = new ImagickPixel('none'); // Transparent 

/* Font properties */ 
$draw->setFont('Arial'); 
$draw->setFontSize(50); 
$draw->setFillColor($color); 
$draw->setStrokeAntialias(true); 
$draw->setTextAntialias(true); 

/* Get font metrics */ 
$metrics = $image->queryFontMetrics($draw, $text); 

/* Create text */ 
$draw->annotation(0, $metrics['ascender'], $text); 

/* Create image */ 
$image->newImage($metrics['textWidth'], $metrics['textHeight'], $background); 
$image->setImageFormat('png'); 
$image->drawImage($draw); 

/* Save image */ 
file_put_contents('/tmp/file.png', $image); 

私の人生にとって私はこのエラーについてgoogle経由で情報を見つけることはできません。また、この方法や失敗する可能性のある原因に関する適切な文書を見つけることもできません。基本的に、私は困惑しています。誰かが洞察力や修正を提供できれば、大いに感謝します。

ImageMagicバージョン:ImageMagickの6.6.5-10 2011-04-06 Q16

のImagickモジュールのバージョン:3.1.0b1

答えて

0

同様の問題がある場合は、PHP Imagickの例外が常に最も説明的であるとは限りません。最初にサーバーにインストールされているImage Magicアプリケーションの出力を調べるのに多くの時間を節約できました。心に留めておくだけのもの。現在インストールされているデリゲート(モジュール)の一覧を表示するには、コマンドconvert -list configureを使用し、出力から "DELEGATES"で始まる行を調べます。同じエラーが発生した場合は、まずここでチェックすることをお勧めします。私はfreetypeとghostscriptの代理人がいなかったことが分かりました。依存関係をインストールし、ImageMagickをすばやく再コンパイルすると、すべてが魅力的に機能します。

1

あなたはCLI版を試してみましたか? ImageMagickはサーバーにインストールされていますか?はい が、その後

system('convert -background lightblue -fill blue \ 
     -font Candice -pointsize 72 label:Anthony \ 
     label.gif '); 

のようなコマンドを実行すると、スクリプトを実行した後、サーバーにlabel.gifをimagenamedしているかどうかを確認します。 参照の場合http://www.imagemagick.org/Usage/text/

+0

私はPHPから何も戻ってきていないので、シェルで実行した結果、フリータイプのデリゲートが見つからないことがわかりました。私がconvert -listを実行したことを確認するには、 "DELEGATES jpeg jng png zlib"を見つけてください。だから、私はその依存関係を満たす必要があるように見え、何か進歩しているかどうかを見ています...ありがとうbtw、私は自分のコードで何が間違っていたかを調べることに集中し、イメージマジックアプリケーションはそれ自身です。 – Pizano

+0

nevermindいつもimagemagickは多くのものに依存するモジュールをたくさん持っています。一度、私は追記依存関係の問題に立ち往生し、同じことが私にも起こりました。 – Hardik

関連する問題