Tôi đang cố gắng in nhiều dòng văn bản trên hình ảnh và căn giữa để căn chỉnh chúng.Trung tâm căn chỉnh nhiều dòng văn bản với GD và PHP
ví dụ:
Đây là
Một chuỗi văn bản
Ngay bây giờ, tôi chỉ có vị trí bên trái cho toàn bộ chuỗi. Có bất kỳ phím tắt nào để làm việc đó không? Tôi nghĩ rằng nó có thể phải là một getttfbox trên toàn bộ chuỗi, sau đó một phát nổ trên ngắt dòng, sau đó trung tâm văn bản mới bên trong ttfbox lớn hơn. Đó là một cơn đau ở ass ...
EDIT: đã đưa ra một giải pháp:
foreach ($strings as $index => $string) {
$parts = explode ("\n", $string['string']);
if (count ($parts) > 1) {
$bounds = imagettfbbox (intval($string['fontsize']), 0, $font, $string['string']);
$width = $bounds[2] - $bounds[0];
$height = $bounds[3] - $bounds[5];
$line_height = $height/count ($parts);
foreach ($parts as $index => $part) {
$bounds = imagettfbbox (intval($string['fontsize']), 0, $font, $part);
$new_width = $bounds[2] - $bounds[0];
$diff = ($width - $new_width)/2;
$new_left = $string['left'] + $diff;
$new_string = $string;
$new_string['left'] = $new_left;
$new_string['top'] = $string['top'] + ($index * $line_height);
$new_string['string'] = $part;
$new_strings[] = $new_string;
}
}
}
if ($new_strings)
$strings = $new_strings;
Trong trường hợp này, mỗi $ string là một mảng với một số thông tin về cách thức và những gì để in. Hy vọng rằng sẽ giúp ai đó.
Xin đừng sửa câu trả lời của bạn vào câu hỏi của bạn nhưng thay vì viết một câu trả lời mới (và chấp nhận nó, nếu thats giải pháp mà làm việc cho bạn). – darthmaim