这是写作前的空图像
这是我的代码
<?php
function LoadJpeg($imgname)
{
$im = @imagecreatefromjpeg($imgname);
$grey = imagecolorallocate($im, 255, 255, 0);
// The text to draw
$text = 'http://www.stackoverflow.com';
// Replace path by your own font path
$font = 'CONSOLA.TTF';
list($width, $height) = getimagesize($imgname);
// wants to know how to use this width/height dynamically //
imagettftext($im, 20, 45, 200, 450, $grey, $font, $text);
return $im;
}
header('Content-Type: image/jpeg');
$img = LoadJpeg('Blue_hills.jpg');
imagejpeg($img);
imagedestroy($img);
?>
在其上书写文字后的图像
我想要的是将文本垂直和水平居中45度。请帮帮我。谢谢大家。
答案 0 :(得分:2)
使用imagettfbbox功能检索文本呈现 所需的尺寸。然后使用该信息计算您应该在目标图像中定位的x,y坐标,以使文本对应于宽度/高度居中。
答案 1 :(得分:0)
我对PHP知之甚少(我正在进行这项工作)。
我建议制作一个新的方形图像,将其设置为带有imagecolortransparent()的透明背景。然后将文本写入透明图像。
接下来,我尝试使用imagecopyresized()将文本复制并缩放到新窗口。使用原件高度和宽度的最小值作为目标尺寸。偏移量类似于(max($ width,$ height)-min($ width,$ height))/ 2。将偏移量应用于更大的维度。