質問: new ImagickDraw(); $draw->setFontSize( 24 ); $draw->annotation( 0, 0, "test" ); $templateImg->drawImage($draw); $templateImg->writeImage("o1.png"); $templateImg->destroy(); ``` 各バージョンは以下です。 PHP 7.2.14 ImageMagick 3.4.3
回答: 少し試してもらいたいのですが良いでしょうか。 ImagickDraw クラスより。 ※すべて一気にするのではなく1つ1つ試してみてください。 * ImagickDraw::comment でコメントを追加してみる。 * ImagickDraw::circle で画像の上に円をかいてみる。 * ImagickDraw::setFont してからsetFontSize、annotation * annotationのx、yの座標を変えてみる ただ、マニュアルに不整合な部分があったりしますね。 ImagickDraw::annotationは説明に`ImagickDraw::annotation ( float $x , float $y , string $text ) : bool`とあってboolがreturnされるかと思ったら「値を返しません。 」を書いてあったり。 返さないならvoidのはずですが・・・。 念のためannotationの返却値をとるようにデバッグ入れてみてください。 ``` $ano = $draw->annotation( 0, 0, "test" ); var_dump($ano); ``` あまり私はこういった拡張機能を使ったことがないのですが、 拡張機能がゆえに、マニュアルの更新が確実に行われていないのかもしれません。 どうしてもImagickDrawでなければならない、のでなければ GDライブラリの利用も検討してみてください。 拡張機能ですが今ではデフォルトで使えますし、よほど複雑な描画でなければ可能なはずです。 (結構動作が重たいとか気になる点はありますが・・・)