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」メソッドを使うとバイナリを得ることができるのでそのまま出力。

?>

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

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

トラックバック

このブログ記事に対するトラックバックURL:

コメント & トラックバック

[...] 今日の実験、前回の記事では四角形をつくったので、そこに各辺(たて・よこ)の長さの注釈を入れてみる。 [...]

Comment feed

コメントする