我已經拼湊下面的代碼,這非常接近的工作原理:ImageMagick的標題不充盈尺寸垂直尺寸
<?php
$img = new Imagick("quote_blank.jpg");
$txt = new Imagick();
$txt->setBackgroundColor("transparent");
$txt->newPseudoImage(380,250, "Caption:".htmlspecialchars($_GET['quote']));
$txt->colorizeImage('#468847',1);
$img->compositeImage($txt, imagick::COMPOSITE_OVER, 10, 80);
$draw = new ImagickDraw();
$draw->setFillColor('#468847');
$draw->setGravity(Imagick::GRAVITY_SOUTHEAST);
$draw->setFontSize(25);
$draw->setFontStyle(3);
$img->annotateImage($draw, 5,5,0, htmlspecialchars($_GET['attrib']));
$img->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $img;
?>
(請注意,quote_blank.jpg是一個400x400的圖片背景在其上的文字渲染並駐留在與php文件相同的目錄中)。
問題是,標題只填充380x250 PseudoImage,只有很少的短詞。任何長度的任何東西都會導致框中的上半部分(或更少)在其中具有任何文本(除了歸因註釋)。
看起來像PseudoImage工作正常,但ImageMagick的計算字體大小的算法只設計爲填充寬度,而不是高度。我不知道它是如何決定什麼行長度(這可能反過來決定字體大小,因此字幕框的數量和垂直覆蓋率)。
所以我想我的問題是這樣的:是否有任何改變它的計算方法,以儘可能多地填充標題框,水平和垂直?
的短短几句話樣品,顯示字幕可以去全高:
文本更典型長度的樣品,顯示出它不會填補框垂直
您使用哪種Imagick和PHP的版本?使用PHP 5.6.2和Imagick 3.1.2,我得到了更好的結果:http://i.imgur.com/2W2a7ee.jpg – 2014-10-29 01:16:27
ImageMagick:6.6.9-7 2014-03-06 Q16 PHP:5.3。 27 – james3mg 2014-10-29 04:47:59
我有ImageMagick 6.8.9-8,嘗試更新 – 2014-10-29 10:58:13