PHP逆引き大全 516の極意

画像・動画操作の極意 - Tips367 動的にGIFアニメーションを作る

登録タグ
PHP
Icon comment count 0
Icon stock count 0

5-3ImagemagickTips367 動的にGIFアニメーションを作る

Level3

PointaddImage()を使う

リスト1の3〜10行目でまず各信号(赤、黄、青)の点灯中及び消灯中の円を描画します。ここではsignal_color関数をコールし、55〜62行のsignal_color関数内で、imagickDrawクラスを使っています。12行〜28行は、信号の各状態のオブジェクトを作成します。例えば、青信号のときは、黄・赤は消灯します。赤信号のときは、黄・青が消灯します。そのそれぞれの状態をオブジェクトにしています。65〜72行のsignal関数をコールすることで、Imagickオブジェクトを生成し、信号の枠を作ります。続いて、青信号のときは「青が点灯・黄色消灯・赤消灯」という風にimagick::drawImage()メソッドをコールしていきます。30行目から実際のGIFアニメーションを作成します。imagick::setImageDelay()メソッドは、GIFアニメーションの1枚目と2枚目の間をどの程度の時間を開けるかを設定します。単位はミリ秒ですので、300ミリ秒で3秒となります。

32行目のimagick::setImageIterationsは、GIFアニメーションのループ回数を指定します。0で無限ループになります。

最後に41行目でGIFアニメーションとして、ファイルに書き出しを行います。GIFアニメーションの場合は、これまでのように直接オブジェクトをブラウザに出力してもアニメーションができませんので、一度ファイ

出典情報

Medium

PHP逆引き大全 516の極意

  • 著者: 大家 正登, 茂木 健一, 鮫島 康浩, 谷中 志織

コメント

    コメントはありません