PHP基础------GD库绘制验证码

<?php
一:GD函数库

    1.函数:
        imagecreate(width,height) 创建了基于调色板的图像

        imagecreatetruecolor(width,height) 创建基于真色彩的图像

        header("content-type:image/图片格式");
        图片格式:gif jpeg png

        imagegif(image)输出图像

        imagedestroy(image)销毁图像

        imagestring(image, font, x, y, string, color)写入字符串

        imagecolorallocate(image, red, green, blue)为图像分配颜色

        imagettftext(
                    image, //图像
                    size, //文本大小 单位px
                    angle, //倾斜的角度
                    x, //文字起点的坐标
                    y, //文字起点的坐标
                    color, //颜色
                    fontfile, //ttf文件的位置
                    text//文本内容
            )

        imagefilledrectangle(image, x1, y1, x2, y2, color)绘制一个矩形

        imagesetpixel(image, x, y, color)绘制单独的像素点

        imageline(image, x1, y1, x2, y2, color)绘制一个线段
?>

验证码案例:

<?php
header("content-type:image/gif");
//验证码宽高
$width = "150";
$height = "60";

//创建画布
$image = imagecreatetruecolor($width, $height);

//分配颜色
$color = imagecolorallocate($image, 255, 255, 255);

//文字颜色
$sizeColor = imagecolorallocate($image, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

//填充画布
imagefilledrectangle($image, 0, 0, 150, 60, $color);

//验证码文本
$num = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$checkStr = null;

//验证码的位数
for ($i=0; $i < 4; $i++) {
    $checkStr = $checkStr.$num[rand(0,35)];
}

//写入文本
imagettftext($image, 25, mt_rand(-5,5), 20, 30, $sizeColor, "segoeprb.ttf", $checkStr); 

//绘制噪点
for ($i=0; $i <100 ; $i++) {
    imagesetpixel($image, mt_rand(0,150), mt_rand(0,60),$sizeColor);
}

//绘制干扰线
for ($i=0; $i < 4; $i++) {
    imageline($image,mt_rand(0,150), mt_rand(0,60), mt_rand(0,150), mt_rand(0,60), $sizeColor);
}

//输出图像
imagegif($image);
//销毁图像
imagedestroy($image);
?>
时间: 2024-12-25 17:17:07

PHP基础------GD库绘制验证码的相关文章

使用PHP GD库绘制图像,不显示的问题

1. 使用PHP中的GD库绘制图像,之后浏览器无法显示,GD库安装,配置也没什么错误,提示图像因本身有错无法显示,于是就在header() 前面使用ob_clean();然后使用浏览器就能正常的浏览了 1 <?php 2 $height = 300; 3 $width = 300; 4 $im = imagecreatetruecolor($width, $height); 5 $white = imagecolorallocate ($im, 255, 255, 255); 6 $blue =

PHP 使用GD库生成验证码 在图像上绘制汉字

PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像. 更加方便的是,PHP 可以直接将图像数据流输出到浏览器. 要想在 PHP 中使用图像处理功能,你需要连带 GD 库一起来编译 PHP. GD 库和 PHP 可能需要其他的库, 这取决于你要处理的图像格式. 你可以使用 PHP 中的图像函数来获取下列格式图像的大小: JPEG, GIF, PNG, SWF, TIFF 和 JPEG2000.如果联合 ex

PHP GD库生成验证码

1.引入GD库,在php.ini中吧extension=php_gd2.dll中把前面:去掉.print_r(gd_info());打印出来相关信息. 学GD库重在理解,1.画图的过程    2,计算机的坐标体系 GD库画图典型流程 1.创建画布    imagecreatetruecolor(); 也可以打开一张图片作画布 imagecreatefromjpeg($path); 2.创建颜料 imagecolorcate(); 3.画图泼墨渲染 imagefill(); 画直线 imageli

PHP用GD库绘制图片,制作验证码浏览器不能输出

1,代码如下: <?php function fillRandomString(){ //生成验证码 $char = array_merge(range(0, 9),range("a", "z"),range("A", "Z")); //讲字符串$char打乱 $luan = str_shuffle(implode("", $char)); //从字符串中随机取四位 return  substr($l

GD库的基本信息,图像的旋转、水印、缩略图、验证码,以及图像类的封装

GD库检测 <?php phpinfo(); ?> GD库安装• Windows 使用phpstudy • Linux 编译安装 –with-gd• Linux 编译安装扩展 GD库支持的图像格式 使用 gd_info() 函数 检测服务器支持的图像格式 图像信息处理 <?php //获取图像详细信息 $image = '../image/b.png'; $info = getimagesize($image); var_dump($info); $string = file_get_c

PHP利用GD库画图和生成验证码图片

首先得确定php.ini设置有没有打开GD扩展功能,测试如下 print_r(gd_info()); 如果有打印出内容如下,则说明GD功能有打开: Array ( [GD Version] => bundled (2.0.34 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF Crea

安装GD库解决ThinkPHP 验证码Call to undefined function Think\imagecreate()出错

在php中imagecreate函数是一个图形处理函数,主要用于新建一个基于调色板的图像了,然后在这个基础上我们可以创建一些图形数字字符之类的,但这个函数需要GD库支持,如果没有开启GD库使用时会提示Call to undefined function imagecreate()错误. 例,我在测试一个简单生成图形时实例 Example #1 新建一个新的 GD 图像流并输出图像  代码如下 复制代码 <?php header("Content-type: image/png")

php 简易验证码(GD库)

论坛中为了防止灌水,出现了很多的验证码的插件,现在这里介绍一个非常简单的自定义验证码函数,这个验证码实现的原理就是通过php扩展的gd库来实现的. 给出百度百科对验证码的定义"验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Humans Apart"(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序.可以防止:恶意破解密码.刷票.论坛灌

php学习笔记:利用gd库生成图片,并实现随机验证码

说明:一些基本的代码我都进行了注释,这里实现的验证码位数.需要用的字符串都可以再设置.有我的注释,大家应该很容易能看得懂. 基本思路: 1.用mt_rand()随机生成数字确定需要获取的字符串,对字符串进行拼接(觉得生成的验证码觉得有点太挤,大家可以再字符串中间拼接个空格键),实现随机验证码: 备注:建议大家用mt_rand(),而不是rand(),前者效率更高 2.利用gd库生成图片,把随机字符串写到图片输出. 效果: 每次刷新,都生成一个随机验证,后期我可能还会补充怎么实现随机码点击图片就再