我希望Text是“Text Align Right”。
.products li {
float: none;
margin: 0px 10px;
padding: 45px 5px;
min-width: 50px;
height: 400px;
position: relative;
border: 2px solid #427cb7;
background-color: #c6d7e9;
display: inline-block;
text-align: center;
vertical-align:top;
}
你知道吗?
因为我不懂。
我已经谷歌很多了。
你们需要知道,我不是真正的PHP,这就是我需要帮助的原因。
如果您有疑问,请询问!
答案 0 :(得分:1)
非常清晰的func。版本,带有示例....
<?php
function calculateTextBox($text,$fontFile,$fontSize,$fontAngle) {
/************
simple function that calculates the *exact* bounding box (single pixel precision).
The function returns an associative array with these keys:
left, top: coordinates you will pass to imagettftext
width, height: dimension of the image you have to create
*************/
$rect = imagettfbbox($fontSize,$fontAngle,$fontFile,$text);
$minX = min(array($rect[0],$rect[2],$rect[4],$rect[6]));
$maxX = max(array($rect[0],$rect[2],$rect[4],$rect[6]));
$minY = min(array($rect[1],$rect[3],$rect[5],$rect[7]));
$maxY = max(array($rect[1],$rect[3],$rect[5],$rect[7]));
return array(
"left" => abs($minX) - 1,
"top" => abs($minY) - 1,
"width" => $maxX - $minX,
"height" => $maxY - $minY,
"box" => $rect
);
}
// Example usage - gif image output
$text_string = "Hullo World";
$font_ttf = "./fonts/arial.ttf";
$font_size = 22;
$text_angle = 0;
$text_padding = 10; // Img padding - around text
$the_box = calculateTextBox($text_string, $font_ttf, $font_size, $text_angle);
$imgWidth = $the_box["width"] + $text_padding;
$imgHeight = $the_box["height"] + $text_padding;
$image = imagecreate($imgWidth,$imgHeight);
imagefill($image, imagecolorallocate($image,200,200,200));
$color = imagecolorallocate($image,0,0,0);
imagettftext($image,
$font_size,
$text_angle,
$the_box["left"] + ($imgWidth / 2) - ($the_box["width"] / 2),
$the_box["top"] + ($imgHeight / 2) - ($the_box["height"] / 2),
$color,
$font_ttf,
$text_string);
header("Content-Type: image/gif");
imagegif($image);
imagedestroy($image);
?>
[记住:标签之前或之后没有空格,因为header()调用,你烤! ]
如果您正在寻找简单的文本对齐方式,则需要使用imagettfbbox()命令。当给出正确的参数时,它将返回数组中待制作文本字段的边界,这将允许您计算需要用于居中或对齐文本的x和y坐标。
横向居中示例:
<?php
$tb = imagettfbbox(17, 0, 'airlock.ttf', 'Hello world!');
?>
$ tb将包含:
Array
(
[0] => 0 // lower left X coordinate
[1] => -1 // lower left Y coordinate
[2] => 198 // lower right X coordinate
[3] => -1 // lower right Y coordinate
[4] => 198 // upper right X coordinate
[5] => -20 // upper right Y coordinate
[6] => 0 // upper left X coordinate
[7] => -20 // upper left Y coordinate
)
对于水平对齐,我们需要从图像的宽度中减去“文本框”的宽度{$ tb [2]或$ tb [4]},然后减去2。
假设你的图像宽200像素,你可以这样做:
<?php
$x = ceil((200 - $tb[2]) / 2); // lower left X coordinate for text
imagettftext($im, 17, 0, $x, $y, $tc, '../arial.ttf', 'Hello world!'); // write text to image
?>
这将为您的文本提供完美的水平中心对齐,给出或取1个像素。玩得开心!