在巩义做网站中,经常会用到图片验证码功能,这个功能使用的就是php语言,因为php不但可以产生html输出,还可以创建和操作各种不同格式的图像文件,php也提供了一些内置图像处理函数,也可以使用GD函数库创建新图像或处理已有图像,目前GD2库支持jpeg、png和wbmp格式。
一.首先开启GD2图像扩展库
在php.ini中,找到extension=gd2,即可打开。
二.创建画布
创建画布有两种形式:
a.创建基于已有图像的图像,使用imagecreatefromjpeg函数,语法如下,
$filename="./1.jpg";
$img2=imagecreatefromjpeg(filename);
var_dump($img2);
b.创建空画布图像,代码如下:
//创建空画布
$img=imagecreatetruecolor(400,300);
//打印变量,成功返回图像资源,否则返回false
var_dump($img);
三.为图像分配颜色,使用函数imagecolorallocat,如下:
$color=imagecolorallocate($img,255,255,255);
四.为画布填充颜色,使用函数imagefill,参数:图像资源,x轴,y轴,颜色
imagefill($img, 0,0, $color);
五.水平画一行字符串,使用函数imagestring(),分别有几个参数
1.图像资源;
2.字体大小,取值1,2,3,4,使用内置字体;
3.绘制坐标,x,y;
4.绘制的字符串
5.文本颜色
6.文本颜色
$str="hello world";
imagestring($img,5, 0, 0, $str,$color2);
六.取画布宽高,保证文字局居中
$imageWidth=imagesx($img);
$imageHeight=imagesy($img);
七.取内置字体的宽高
$str="hello world";
$font=5;
$fontWidth=imagefontwidth($font);
$fontHeight=imagefontheight($font);
八.计算字符串的起点坐标,并实现字符串居中
$x=($imageWidth-$fontWidth*strlen($str))/2;
$y=($imageHeight-$fontHeight)/2;
imagestring($img,$font, $x, $y, $str,$color2);
九.写中文汉字到画布上,使用函数imagettftext(),代码如下:
//imagettftext(图像资源,字号大小,旋转角度, x, y, 颜色,字体文件绝对地址,字符串)
$str="测试一下";
$fontfile="C:\Windows\Fonts\simfang.ttf";
imagettftext($img,48, 0,50,100, $color2, $fontfile, $str);
九.输出图像到浏览器,使用imagejpeg函数
该函数拥有三个参数,
a.输出的画布,
b.图片名称,如果不写,则在浏览器输出,写则代表将创建的图像保存到文件
c.图片质量,从1-100,
$filename="https://www.gyzgl.com/uploads/allimg/191011/1-19101114333M10.jpg";
$img2=imagecreatefromjpeg($filename);
var_dump($img2);
十.输出图像到浏览器,这里注意如果输出图像,需要把var_dump删掉;
header("Content-type: image/jpeg");
imagejpeg($img2);
十一.销毁图像资源,使用函数imagedestroy,
imagesdestroy();
本文关键词:
网站验证码 未经允许不得转载:郑州网站建设|郑州网站制作|荥阳网站建设|巩义网站建设|网站优化-全栈网络