PHPのImagickで四角形とか描画とかしなきゃいけなくなったので、調べたら、うわぁ。。。全然参考になるところないね・・・。

ということで今日まで分かったことをメモメモ。


線を描いたりフォントで文字書いたりするのは、ImagickDrawオブジェクトを利用

このImagickDrawオブジェクトをImagickオブジェクトへはっつける。

出力

という手順を踏むらしい。

どうやらファイルに出力しなくても直接バイナリを得てPHPで出力も可能ということ。


じゃあやってみよう!

<?php

//四角形を描く
$draw = new ImagickDraw();#ImagickDrawを作って... $draw->line( 0, 0, 250, 0);#右
$draw->line( 250, 0, 250, 120);#下 $draw->line( 250, 120, 0, 120);#左 $draw->line( 0, 120, 0, 0);#上 #↑このように線を引く。多角形を描く「polygon」メソッドもあり、こっちでもいいじゃないかなぁと... //Imagickオブジェクトを作成。実際の出力とかはこっちでやる! $image = new Imagick(); $image->newImage(252, 122, new ImagickPixel('#FFFFFF')); #↑新しい画像(キャンバスみたいなもの??)を作成 # 線の幅分を加算しなきゃいけないことに注意。 $image->setImageFormat('gif');#画像フォーマットをgifに設定します。 $image->drawImage( $draw );#描画した四角形を画像に貼り付け! header('Content-type: image/gif');#適切にMIMEタイプを設定して... echo( $image->getimageblob() );#「getimageblob」メソッドを使うとバイナリを得ることができるのでそのまま出力。 ?>

↑こんな感じ。。。うーむ・・・理屈は理解したが、、、慣れが必要だ・・・。

とりあえず第一関門突破。ここにあとは文字を流し込まなきゃならないので、それはまた後日。