Monday, September 22, 2008

ImageMagickとPHPでアニメーションGIFをファイルに保存せず直接出力する

ImageMagickとPHPでアニメーションGIFをファイルに保存せず直接出力するには、以下のコードを実行します。
newImage(200, 40, "white");
$idraw = new ImagickDraw();
/* フォント設定 */
$idraw->setFont('Tahoma');
/* フォントサイズ設定 */
$idraw->setFontSize(30);
/* 塗りつぶし色設定 */
$idraw->setFillColor('#bbddff');
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_NORTH);
$img->annotateImage($idraw, 0, 0, 0, "ImageMagick");
/* フォーマットを設定 */
$img->setImageFormat("gif");
/* ディレイを設定 */
$img->setImageDelay(50);
$img2 = new Imagick();
$img2->newImage(200, 40, "white");
/* フォーマットを設定 */
$img2->setImageFormat("gif");
/* ディレイを設定 */
$img2->setImageDelay(50);
$img->addImage($img2);
Header("Content-Type: image/gif");
echo $img->getImagesBlob();
/* $idraw->clear(); 2008/09/30追記:destroyと同様にClearDrawingWandを呼ぶので必要なし */
$idraw->destroy();
/* $img->clear(); 2008/09/30追記:destroyと同様にClearMagicWandを呼ぶので必要なし */
$img->destroy();
?>

上記コードでは、文字列が点滅するアニメーションを直接返しています。

関連項目
ImageMagickとPHPで画像をファイルとして保存せずに直接出力する

No comments: