用php画图,如何画出下划线效果?

用php画图,如何画出下划线效果?

用gd2, 想生成一个证明书,想画下划线,如何实现

回复讨论(解决方案)

在适当的地方画条线

使用gd画条线就可以了,定好位置来画。

例如:

header(“content-type: image/png”);
$length = 6;
$authnum = ‘abcdef’; //字符.

$width = 13;//文字宽度
$height = 18;//文字高度

$pw = $width*$length+100;
$ph = $height+60;

$im = imagecreate($pw,$ph); //imagecreate() 新建图像,大小为 x_size 和 y_size 的空白图像。
$black = imagecolorallocate($im, 238,238,238); //设置背景颜色

/* 文字 */
for ($i = 0; $i < strlen($authnum); $i++){ $font = imagecolorallocate($im, mt_rand(0,50),mt_rand(0,150),mt_rand(0,200));//设置文字颜色 $x = $i/$length * $pw + 1; $y = 1; imagestring($im, mt_rand(4,6), $x, $y, substr($authnum,$i,1), $font); } /* 线 */ $dist = imagecolorallocate($im, 0,0,0); //設置線顏色 imageline($im,0,20,250,20,$dist); imagepng($im); //以 png 格式将图像输出到浏览器或文件 imagedestroy($im); //销毁一图像

使用gd画条线就可以了,定好位置来画。

例如:

header(“content-type: image/png”);
$length = 6;
$authnum = ‘abcdef’; //字符.

$width = 13;//文字宽度
$height = 18;//文字高度

$pw = $width*$length+100;
$ph = $height+60;

$im = imagecreate($pw,$ph); //imagecreate() 新建图像,大小为 x_size 和 y_size 的空白图像。
$black = imagecolorallocate($im, 238,238,238); //设置背景颜色

/* 文字 */
for ($i = 0; $i < strlen($authnum); $i++){ $font = imagecolorallocate($im, mt_rand(0,50),mt_rand(0,150),mt_rand(0,200));//设置文字颜色 $x = $i/$length * $pw + 1; $y = 1; imagestring($im, mt_rand(4,6), $x, $y, substr($authnum,$i,1), $font); } /* 线 */ $dist = imagecolorallocate($im, 0,0,0); //設置線顏色 imageline($im,0,20,250,20,$dist); imagepng($im); //以 png 格式将图像输出到浏览器或文件 imagedestroy($im); //销毁一图像

谢谢 thinkyou

如果我只想对 b 和 e 进行下划线操作 怎么办

$im = imagecreatetruecolor(300,200);
$bg = imagecolorallocate($im, 255,255,255);
$color = imagecolorallocate($im, 0,0,0);
imagefill($im, 0,0,$bg);
$font = ‘fonts/stxingka.ttf’;
$size = 100;
$angle = 0;
$str = ‘abcedf’;
$xh = array(‘b’, ‘e’);
$p = ‘/(‘ . join(‘|’, $xh) . ‘)/’;
$ar = imagettfbbox($size, $angle, $font, $str);
$height = max($size,$ar[1]-$ar[5]) – $ar[1] + 30;
$width = 0;
$dat = preg_split($p, $str, -1, preg_split_delim_capture);
foreach($dat as $str)
{
$ar = imagettfbbox($size, $angle, $font, $str);
imagettftext ($im, $size, $angle, $width + $ar[0]-$ar[6], $height, $color, $font, $str);
if(in_array($str, $xh)) imagefilledrectangle($im, $width, $height+10, $width + $ar[2]-$ar[0], $height+13, $color);
$width += $ar[2]-$ar[0];
}
header(“content-type: image/jpeg”);
imagejpeg($im);
imagedestroy($im);

用php画图,如何画出下划线效果?0

Posted in 未分类