LINUX.ORG.RU

[php][gd][как] Перенос текста на новую строку

 ,


0

0

собственно сабж
средствами GD нужно на картинке написать надпись, но вот если длинна надписи велика, как сделать чтобы она не заходила за граници рисунка, а делался перенос на след строку?

★★

не знаю как на php, а на С gdImageStringFT возвращает размер текста, итого можно его проверить и подогнать, написав соответствующую функцию

lester ★★★★
()
$font_width = ImageFontWidth($font);
$str_width = strlen($str)*$font_width;

$font может быть 1, 2, 3, 4, 5 что соответствует размеру встроенного шрифта, или шрифтом загруженным с помощью imageloadfont().

RR
()
Ответ на: комментарий от lester

А если так:

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

Writes the given text into the image using TrueType fonts.
array imagettfbbox ( float $size , float $angle , string $fontfile , string $text )

This function calculates and returns the bounding box in pixels for a TrueType text.

RR
()
Ответ на: комментарий от RR

не проверял

function wrap($fontSize, $angle, $fontFace, $string, $width){
    
    $ret = "";
    
    $arr = explode(' ', $string);
    
    foreach ( $arr as $word ){
    
        $teststring = $ret.' '.$word;
        $testbox = imagettfbbox($fontSize, $angle, $fontFace, $teststring);
        if ( $testbox[2] > $width ){
            $ret.=($ret==""?"":"\n").$word;
        } else {
            $ret.=($ret==""?"":' ').$word;
        }
    }
    
    return $ret;
RR
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.