2013-01-07 69 views
2

在使用ImageMagick的設計應用指定這樣的: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"); 

我想設定行間距以similair時尚,但顯示所有樣品是這樣的:

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

如何我訪問PHP中的interline-spacing命令行參數?

+1

啊,所以你想有一個* PHP *命令。我誤解了。刪除我的答案 –

+0

我明白這就是我想要的! – Himmators

回答

2

this bug report,行間間距加入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; 
    } 
} 

賺:

enter image description here