资讯专栏INFORMATION COLUMN

php gd库运用

mykurisu / 2517人阅读

摘要:库库的功能比较强大,主要用来做图片验证码生成,绘制图片,处理图片等等。下面是简单的库绘制图片验证码代码示例白色结果即,就绘制成图片。可以验证了图片生成并保存在本地白色备注在例子中还需要字体插件可以在网上下载,并放到本地文件夹调用

1.gd库

php gd库的功能比较强大,主要用来做图片验证码生成,绘制图片,处理图片等等。下面是简单的gd库绘制图片验证码

代码示例

$size_x = 100;
$size_y = 100;

if(!isset($_GET["code"])) {
    $code = "unknown";
}
$space_per_char = $size_x /(strlen($code)+1);

$img = imagecreatetruecolor($size_x,$size_y);
$background = imagecolorallocate($img,255,255,255);//白色
$border = imagecolorallocate($img,128,128,128);
$colors[] = imagecolorallocate($img,128,64,192);
$colors[] = imagecolorallocate($img,192,64,128);
$colors[] = imagecolorallocate($img,108,192,64);

imagefilledrectangle($img, 1, 1,$size_x - 2, $size_y - 2, $background);
imagerectangle($img, 1, 1,$size_x - 2, $size_y - 2, $border);

for($i = 0;$i < strlen($code);$i++) {
    $color = $colors[$i % count($colors)];
    imagettftext(
        $img,
        28 +rand(0,8),
        -20 +rand(0,40),
        ($i + 0.3) * $space_per_char,
        50 + rand(0,10),
        $color,
        "font/arial.ttf",
        $code{$i}
    );
    imageantialias($img,true);
}
header("Content-type:image/png");
imagepng($img);

结果

即,known就绘制成图片。可以验证了

2.jpeg图片生成并保存在本地

$size_x = 100;
$size_y = 100;

if(!isset($_GET["code"])) {
    $code = "unknown";
}
$space_per_char = $size_x /(strlen($code)+1);

$img = imagecreatetruecolor($size_x,$size_y);
$background = imagecolorallocate($img,255,255,255);//白色
$border = imagecolorallocate($img,128,128,128);
$colors[] = imagecolorallocate($img,128,64,192);
$colors[] = imagecolorallocate($img,192,64,128);
$colors[] = imagecolorallocate($img,108,192,64);

for ($i = 0;$i <= 1;$i++) {
    $x1 = rand(5,$size_x - 5);
    $y1 = rand(5,$size_y - 5);
    $x2 = $x1 - 4 + rand(0, 8);
    $y2 = $y1 - 4 + rand(0, 8);
    imageline($img, $x1, $y1, $x2, $y2, $colors[rand(0,count($colors)-1)]);
}
header("Content-Type:image/jpeg");
imagejpeg($img,"test.jpeg");

备注:在例子中还需要字体插件arial.ttf 可以在网上下载,并放到本地文件夹调用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23193.html

相关文章

  • PHP编译参数configure配置详解(持续更新中)

    摘要:编译参数使用在源代码目录中,该命令可以查看所有编译参数以及对应的英文解释编译参数说明指定安装目录整合指定位置指定额外拓展配置归放处文件夹打开安全模式打开的支持打开对的支持打开对 编译参数-使用 ./configure -h在源代码目录中,该命令可以查看所有编译参数以及对应的英文解释 编译参数-说明 --prefix=/opt/php //指定 ...

    hlcc 评论0 收藏0
  • PHP编译参数configure配置详解(持续更新中)

    摘要:编译参数使用在源代码目录中,该命令可以查看所有编译参数以及对应的英文解释编译参数说明指定安装目录整合指定位置指定额外拓展配置归放处文件夹打开安全模式打开的支持打开对的支持打开对 编译参数-使用 ./configure -h在源代码目录中,该命令可以查看所有编译参数以及对应的英文解释 编译参数-说明 --prefix=/opt/php //指定 ...

    Lyux 评论0 收藏0
  • PHP动态修改GD扩展问题

    摘要:我尝试用重新编译库扩展生成,但在中加入后重启,会报错。请安装库和在我索求答案无果后,我选择了重新编译,尴尬某站答案 编译PHP不带gd,后续添加gd模块 在生成图像验证码的时候我们会用到GD库进行images,我们先安装它.但是有时候,发现自己已经安装了GD库,但是验证码还是生成不了这个时候就得检查一下imagettftext这个函数了 http://php.net/manual/zh...

    ideaa 评论0 收藏0
  • PHP7.0.0在OS X编译安装

    摘要:目前支持和协议。除此以外,还能在可能的字符编码之间相互进行编码转换。如果启用了这个功能,输入字符编码可能将自动转换成。这些可能在未来增加。 前言 PHP7即将在12月3日正式发布,而RC8是已经差不多稳定了的版本,后续的GA版本主要都是在修复bug,所以为了未来开发环境的升级,准备尝试安装一下。 PHP7.0.0将在12月3日正式发布,但是12月2日时github已经发布出PHP-7...

    lordharrd 评论0 收藏0
  • PHP GD无法压缩高解析度的照片解决方式(Allowed memory size bytes e

    摘要:本教学使用环境介绍伺服器端资料库语言版本本机端在刚刚遇到了这个问题上传普通解析的图片,例如都是可以正常上传也能够使用库对其解压缩只是当我上传了甚至更高的图片时,一样可以普通上传但是却无法上传查看错误表示类似这样的错误讯息只要在后端表头宣告就 本教学使用环境介绍伺服器端:Ubuntu 16.04资料库:Mariadb 10.1.34(Mysql)语言版本:php 7.0本机端:MacOS...

    tracymac7 评论0 收藏0

发表评论

0条评论

mykurisu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<