如何在多行(段落中)中写入文本?(How to write text in multiline(in a paragraph)?)
当我使用这段代码时,我可以用文字制作图像,但是在一行中,
function writetext($image_path,$imgdestpath,$x,$y,$angle,$text,$font,$fontsize) { $image=imagecreatefromjpeg("$image_path"); $height = imageSY($image); $width = imageSX($image); $color = imagecolorallocate($image,0,0,0); $textwidth = $width; imageTTFtext($image,$fontsize,$angle,$x,$y,$color,$font, $text ); ImageJPEG($image,$imgdestpath); }请告诉我如何在多行段落中制作此图像?
When i use this code,I can make a image out of text,but in a single line,
function writetext($image_path,$imgdestpath,$x,$y,$angle,$text,$font,$fontsize) { $image=imagecreatefromjpeg("$image_path"); $height = imageSY($image); $width = imageSX($image); $color = imagecolorallocate($image,0,0,0); $textwidth = $width; imageTTFtext($image,$fontsize,$angle,$x,$y,$color,$font, $text ); ImageJPEG($image,$imgdestpath); }Please tell how to make this image in a multiline paragraph??
最满意答案
对于每一行,您需要使用$ y的新值调用新的imageTTFtext函数,例如:
$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer non nunc lectus. Curabitur hendrerit bibendum enim dignissim tempus. Suspendisse non ipsum auctor metus consectetur eleifend. Fusce cursus ullamcorper sem nec ultricies. Aliquam erat volutpat. Vivamus massa justo, pharetra et sodales quis, rhoncus in ligula. Integer dolor velit, ultrices in iaculis nec, viverra ut nunc.'; // Break it up into pieces 125 characters long $lines = explode('|', wordwrap($text, 115, '|')); // Starting Y position $y = 513; // Loop through the lines and place them on the image foreach ($lines as $line) { imagettftext($image, $font_size, 0, 50, $y, $font_color, $font, $line); // Increment Y so the next line is below the previous line $y += 23; }资源
For each line you need new imageTTFtext function to be called with new value for $y for example:
$text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer non nunc lectus. Curabitur hendrerit bibendum enim dignissim tempus. Suspendisse non ipsum auctor metus consectetur eleifend. Fusce cursus ullamcorper sem nec ultricies. Aliquam erat volutpat. Vivamus massa justo, pharetra et sodales quis, rhoncus in ligula. Integer dolor velit, ultrices in iaculis nec, viverra ut nunc.'; // Break it up into pieces 125 characters long $lines = explode('|', wordwrap($text, 115, '|')); // Starting Y position $y = 513; // Loop through the lines and place them on the image foreach ($lines as $line) { imagettftext($image, $font_size, 0, 50, $y, $font_color, $font, $line); // Increment Y so the next line is below the previous line $y += 23; }source
更多推荐
发布评论