PHP+ImageMagickで画像とテキストの合成をしたいのですが下記のエラーが出てしまいます。どなたか原因わかる方いらっしゃいませんか?
よろしくお願いします。
Fatal error: Uncaught ImagickException: non-conforming drawing primitive definition `text'
PHP
1$filePath = "p1.png"; 2$templateImg = new Imagick( $filePath ); 3$draw = new ImagickDraw(); 4$draw->setFontSize( 24 ); 5$draw->annotation( 0, 0, "test" ); 6$templateImg->drawImage($draw); 7$templateImg->writeImage("o1.png"); 8$templateImg->destroy(); 9
各バージョンは以下です。
PHP 7.2.14
ImageMagick 3.4.3
細かいですが「ImageMagick」では?
タグもあるので追加しておいてください。
また、コードはマークダウンのcode機能を利用してご提示ください。
https://teratail.com/help#about-markdown
ありがとうございます。ImageMagickだけ取り急ぎ修正しました。マークダウンは今時間がないため後で修正します。
タイトルもなおしてもらいたいのですが…
>マークダウンは今時間がないため後で修正します。
そうですか。ではその対応がなされてから確認します。正しくコードが提示されてないことになりますので、正しく再現確認がとれないことになりますので。
移動中でしたすみません。修正しました。よろしくお願いします。
念のため、PHPとImageMagickのバージョンも質問に追記いただけますか?
追記いたしました。
すみません。ImageMagick環境をそろえるのが難しい環境みたいで。
私のほうでは再現確認ができないようです。
ちょっと別角度で調べてみます。
返信おそくなりすみません。調査していただけるなんて本当にありがとうございます。
こちらも遅くなってすみません。
今回のコードで参考にした記事ってありますか?
何か抜けてるかもしれないですし
確認です。画像だけの表示はできてるということですよね・?
$draw = new ImagickDraw();
$draw->setFontSize( 24 );
$draw->annotation( 0, 0, "test" );
$templateImg->drawImage($draw);
この3行をコメントアウトすると表示できます。
コードはPHPの本家のマニュアルをみてかきました。
このうちの後ろの三行ですよね
Did you get the code from the User Contributed Notes on the online manual? Might not be trusty.
Stan_Dmaさん
日本人なんですから日本語で。ちょっとそろそろいい加減にしてください。
Thanks. I would take the CoC or leave it. BTW, the second argument of the annotation method, value for height of a text object, should not be zero. Giving more than zero could produce the result you need, I suppose.
There exist some code in the internet that uses "$templateImg->queryFontMetrics($draw, $text);" to get its font metrics and gives the second argment using the metrics like "$draw->annotation( 0, $metrics['ascender'], $text );" . HTH.
回答1件
あなたの回答
tips
プレビュー