首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php imagettftext行高

php imagettftext行高
EN

Stack Overflow用户
提问于 2016-03-09 14:56:13
回答 1查看 2.5K关注 0票数 1

我已经成功地将文本写入我的img并正确定位了它,但是我遇到的问题是增加字体大小会使文本偏离图像。

因此,我知道我可以实现我想要的外观,只要增加文字的线条高度,写到屏幕上。我似乎找不到任何关于是否可以/如何做到这一点的文档。

我的php代码

代码语言:javascript
复制
<?php  

  $font = 'font-type.ttf';

  $rImg = ImageCreateFromJPEG( "test.jpg" );

  $color = imagecolorallocate($rImg, 255, 255, 255);

  //create bounding box
  $bbox = imagettfbbox ( 38 , 0 , $font , urldecode($_GET['promo']) );

  //setting the cordinates
  $x = $bbox[0] + (imagesx($rImg) / 2) - ($bbox[4] / 2) + 200;
  $y = $bbox[1] + (imagesy($rImg) / 2) - ($bbox[5] / 2) + 25;

  //write it
  imagettftext($rImg, 38, 0, $x, $y, $color, $font, urldecode($_GET['promo']));

  header('Content-type: image/jpeg');
  imagejpeg($rImg, NULL,100);

  imagedestroy($rImg);

?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-10 15:32:33

我已经使用这个函数实现了我想要的外观。

代码语言:javascript
复制
function ImageTTFTextWithTracking($im, $size, $angle, $t, $x, $y, $color, $font, $text) {
$numchar = strlen($text);
for($i = 0; $i < $numchar; $i++) {
    # Assign character
    $char[$i] = substr($text, $i, 1);

    # Write character
    imagettftext($im, $size, $angle, ($x + $w + ($i * $t)), $y, $color, $font, $char[$i]);

    # Get width of character
    $width = imagettfbbox($size, $angle, $font, $char[$i]);
    $w = $w + $width[2];
}
}
ImageTTFTextWithTracking($rImg, 48, 0, 10, $x, $y, $colorWhite, $font, urldecode($_GET['code']));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35895010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档