Imagemagick出现问题-恒定距离和字体大小取决于字符串长度。形式:
<form action="text.php" method="post">
<div class="container">
<label for="uname"><b>Tekst1</b></label>
<textarea id="confirmationText" class="text" name="primarytext"></textarea>
<br /> <br />
<label for="psw"><b>Tekst2</b></label>
<textarea id="confirmationText" class="text" name="secondarytext"></textarea>
<br /><br />
<button type="submit">Login</button>
</div>
</form>
PHP代码:
<?php
// Variables
$text2 = $_POST['secondarytext'];
$text = $_POST['primarytext'];
// Primary image
$image = new Imagick();
$image->newImage(970, 946, new ImagickPixel('white'));
$image->setImageFormat('png');
// First parameters for text
if(isset($text)){
$len = mb_strlen($text);
$draw = new ImagickDraw();
$draw->setGravity(Imagick::GRAVITY_CENTER);
$draw->setFont('Bookman-DemiItalic');
if ($len < 10){
$fontSized = 70 - (2*$len + 5);
} elseif($len >= 10 && $len < 50){
$fontSized = 55 - ($len + 4);
} else {
$fontSized = 100 - $len;
}
$fontSized = max($fontSized, 1);
$draw->setFontSize($fontSized);
$draw->setTextAlignment(\Imagick::ALIGN_CENTER);
$image->annotateImage($draw, 485, 473, 0, $text);
}
// Second parameters for text
if(isset($text2)){
$len2 = mb_strlen($text2);
$draw2 = new ImagickDraw();
$draw2->setGravity(Imagick::GRAVITY_CENTER);
$draw2->setFont('Bookman-DemiItalic');
if ($len2 < 10){
$fontSized2 = 50 - (2*$len2 + 5);
} elseif($len2 >= 10 && $len2 < 50){
$fontSized2 = 40 - ($len2 + 4);
} else {
$fontSized2 = 60 - ($len2 - 2);
}
$fontSized2 = max($fontSized2, 3);
$draw2->setFontSize($fontSized2);
$draw2->setTextAlignment(\Imagick::ALIGN_CENTER);
$image->annotateImage($draw2, 485, 270, 180, $text2);
$image->annotateImage($draw2, 485, 676, 0, $text2);
}
//Print image on browser
header('Content-type: image/png');
//Save final image
//$image->writeImages($image, true);
//Show image
echo $image;
我将粘贴图像,生成器有什么问题,应该是什么。 现在fontsize是由strlen决定的,但是我有textarea,所以文本可以是多行的,所以fontsize是由strlen的所有变量设置的,我尝试了最长的一行,但是它也不起作用-例如:
S Ť 一种 C K
字体大小太大,因为最长的行只有一位数字。 我尝试做tftboximage,但是功能是错误的(功能创建的图像取决于所有字母的大小-没有不适当的边框)。
目标版本似乎具有自动调整大小功能(中间的文本不超过350x210px,顶部/下部的文本不超过190x110px)