2

カスタムフォントを使用して、できれば直接出力する、ファイルに保存するオプションを使用して、テキストを画像に動的にレンダリングしたいと考えています。また、フォントとサイズの組み合わせに応じて画像サイズを自動的に設定します

GD では既にこれを実行できますが、文字が重なり合うフォントは処理されません。

だから今、私は ImageMagick を探しています。ドキュメントで、私がやりたいことをしているように見えるを見つけました。これはphp_magickで可能ですか? 特に画像サイズが定義されていない部分:)そうでない場合は、コマンドラインマジックで生の画像を出力して、PHPでクライアントに直接渡すことができますか?

ありがとう!


本当の問題はおそらく次のとおりです。php_magick を使用して、以下の IM コマンドを PHP コードに変換するにはどうすればよいですか?

convert -background lightblue -fill blue -font Arial -pointsize 72 label:Anthony
4

2 に答える 2

12

annotateImageクラスの関数を使用して、Imagickその機能を複製できるはずです。

これは、そのドキュメントからのまっすぐなコピーと貼り付けです。

<?php
/* Create some objects */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );

/* New image */
$image->newImage(800, 75, $pixel);

/* Black text */
$draw->setFillColor('black');

/* Font properties */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

/* Create text */
$image->annotateImage($draw, 10, 45, 0, 
    'The quick brown fox jumps over the lazy dog');

/* Give image a format */
$image->setImageFormat('png');

/* Output the image with headers */
header('Content-type: image/png');
echo $image;
于 2011-05-16T19:31:04.610 に答える
3

APIをスキップし、代わりにコマンドラインインターフェイスを使用することにしました。

convert -background lightblue -fill blue -font Arial -pointsize 72 label:Anthony png:-

これにより、生のPNGデータが返され、ブラウザに出力できます。png:-代わりにファイルに保存するには、ファイル名に置き換えてください。

escapeshellargここでパラメータとしてユーザー入力を使用している場合は、使用することを忘れないでください。

于 2011-06-01T06:41:07.197 に答える