2010-12-07 17 views
0

Im php imagickを使用して画像にテキストを書き込もうとしています。 それは私のサーバー上で正常に実行されますが、私は私のMacBookでそれを実行する問題があります。PHP imagick annotate setFontが最大実行時間を超えています

コード:

/* 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 */ 
header("Content-type: image/png"); 
echo $image; 

私は私のMacBookでこれを実行すると、プロセッサが100%で立ち往生し、プロセスがメッセージで30秒で殺される:30秒の最大実行時間を超えました13行目では、$ draw-> setFont();である。

は...ご回答いただきありがとうございます

+0

にフォントのための完全なパスを提供あなたのサーバーとあなたのMacBookで同じですか? –

+0

MacBookモジュールver:3.0.1、im ver:6.5.7-0、サーバーモジュール:2.1.1-rc1、im:6.3.7 – Kukosk

答えて

0

推測: Arialのは、あなたのシステム上で利用できない場合、またはイメージのバージョンが魔術いるsetFont()

$draw->setFont('/path/to/ARIALB.ttf'); 
+0

私はすでに試してみました。まったく同じですか... – Kukosk

+0

Arial以外の別のフォントを試しましたか? Arial.ttfは、サーバーのTTFファイルのコピーか、Macのデフォルトシステムフォントですか? –

+0

はい、私も別のフォントを試しましたが、それはデフォルトのものでしたが、macportsを更新してから、すべてのパッケージをpecl経由でimagickを再インストールしましたが、今のところ魅力的です:)唯一の質問は、これを簡単に更新する方法はないので、rc1と6.3.7をサーバ上に置いてもいいです... debian lenny aptitudeの最新パッケージです... – Kukosk