使用 GD 库进行验证码,图像未显示
Posted
技术标签:
【中文标题】使用 GD 库进行验证码,图像未显示【英文标题】:Using GD library for captcha, image is not shown 【发布时间】:2018-10-06 09:29:27 【问题描述】:我正在使用 GD 库来生成验证码图像。但是图像没有显示出来。你能帮我吗? 这是转换为验证码图像的文本 index.php
<?php
session_start();
$_SESSION['secure']=rand(1000,9999);
?>
<img src="generate.php" />
生成.php
<?php
session_start();
header('Content-type: image/jpeg');
$text = $_SESSION['secure'];
$font_size=30;
$image_width=200;
$image_height=40;
$image = imagecreate($image_width,$image_height );
imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
imagettftext($image, $font_size, 0, 15, 30, $text_color, 'font.ttf', $text);
imagejpeg($image);
?>
以上是我试图用来生成验证码图像的两个文件。但是图像没有显示出来。我的 GD 库已启用,我已对其进行了检查。任何帮助将不胜感激。
【问题讨论】:
Convert GD output to base64的可能重复font.ttf
存在吗?尝试删除 header('Content-type: image/jpeg');
语句并使用浏览器导航到 generate.php,它应该可以帮助您找出问题所在。
font.ttf 在同一个文件夹中
有人请回答我严重卡住了
【参考方案1】:
From documentation
根据 PHP 使用的 GD 库版本,当字体文件不以前导 / 开头时,.ttf 将附加到文件名,并且库将尝试沿着库定义的字体路径搜索该文件名.
所以尝试一下:
$font = "/path_to_folder/font.ttf";
imagettftext($image, $font_size, 0, 15, 30, $text_color, $font, $text);
这对我有用。
【讨论】:
以上是关于使用 GD 库进行验证码,图像未显示的主要内容,如果未能解决你的问题,请参考以下文章
GD库的基本信息,图像的旋转水印缩略图验证码,以及图像类的封装
安装GD库解决ThinkPHP 验证码Call to undefined function Thinkimagecreate()出错