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」メソッドを使うとバイナリを得ることができるのでそのまま出力。 ?>
↑こんな感じ。。。うーむ・・・理屈は理解したが、、、慣れが必要だ・・・。
とりあえず第一関門突破。ここにあとは文字を流し込まなきゃならないので、それはまた後日。
0 Comments
1 Pingback