2

imagemagick を使用するアプリケーションでは、デザインは次のように指定されます。

   $draw->setFillColor(new ImagickPixel("#FFFFFF"));
   $draw->setstrokecolor(new ImagickPixel("#000000"));
   $draw->setstrokewidth(1);
   $draw->setFontSize(18);
   $draw->setfontweight(100);
   $draw->setFont("fonts/Impact.ttf");

同様の方法で行間の間隔を設定したいのですが、すべてのサンプルは次のように表示されます。

  convert -density 72 -pointsize 12 -interline-spacing 12  -font Arial \

interline-spacingPHP でコマンド ライン パラメータにアクセスするにはどうすればよいですか?

4

1 に答える 1

3

このバグ レポートによると、interline-spacing が PHP に追加されましたが、このメソッドImagickDraw::setTextInterlineSpacingは私のバージョンの PHP にはありません。

# php -v
PHP 5.3.3-7+squeeze14 with Suhosin-Patch (cli) (built: Aug  6 2012 20:08:59)

それが別のバージョンにあるかどうかを確認できます。バグ レポートには、お使いのバージョンの PHP に適用できるパッチもあります。それ以外の場合は、y 座標と への複数回の呼び出しを使用して、独自のスペーシング メソッドを作成できますImagick::annotateImage。何かのようなもの:

<?php

$image = new Imagick();
$image->newImage(250, 300, "none");
$draw = new ImagickDraw();
$draw->setFillColor("black");
$draw->setFontSize(18);
$text = "Image Magick\nwowowow\nit's magical";
annotate_spaced($image, $draw, 0, 40, 0, $text, 40);
$image->setImageFormat("png");
header("Content-type: image/png");
echo $image;

function annotate_spaced($image, $draw, $x, $y, $ang, $text, $spacing)
{
   $lines = explode("\n", $text);
   foreach ($lines as $line)
   {
      $image->annotateImage($draw, $x, $y, $ang, $line);
      $y += $spacing;
   }
}

作ります:

ここに画像の説明を入力

于 2013-01-08T04:46:28.917 に答える