PHP学习笔记(5)GD库画验证码
- <?php
- header("content-type:image/png");
- $width = 500;
- $height = 500;
- $img = imagecreatetruecolor($width, $height);
- $string = "hello";
- //7种颜色,存入数组
- $red = imagecolorallocate($img, 255, 0, 0);
- $white = imagecolorallocate($img, 255, 255, 255);
- $green = imagecolorallocate($img, 0, 255, 0);
- $blue = imagecolorallocate($img, 0, 0, 255);
- $aaa = imagecolorallocate($img, 255, 255, 0);
- $bbb = imagecolorallocate($img, 0, 255, 255);
- $ccc = imagecolorallocate($img, 255, 0, 255);
- $colors = array($white,$red,$green,$blue,$aaa,$bbb,$ccc);
- //画点
- for ($i=0; $i < 1000; $i++) {
- imagesetpixel($img, mt_rand(0,$width), mt_rand(0,$height), $colors[mt_rand(0,6)]);
- }
- //划线
- for ($i=0; $i < 200; $i++) {
- imageline($img, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $colors[mt_rand(0,6)]);
- }
- //生成4位验证码
- $a1 = range(0, 9);
- $a2 = range(a, z);
- $a3 = range(A, Z);
- $a4 = array_merge($a1,$a2,$a3);
- $num = 4;
- $fontsize = 60;
- for ($i=0; $i < 4; $i++) {
- imagettftext($img, $fontsize, mt_rand(-45,45), $width/$num*$i+$fontsize, $height/2, $colors[mt_rand(0,6)], "Fonts/msyh.ttf", $a4[mt_rand(0,61)]);
- }
- imagepng($img);
- ?>
------------------------------------------------------------------------------- -----------------------------------------------------------------------------
下面的小一点:
- <?php
- header("content-type:image/png");
- $width = 110;
- $height = 40;
- $img = imagecreatetruecolor($width, $height);
- $string = "hello";
- //7种颜色,存入数组
- $red = imagecolorallocate($img, 255, 0, 0);
- $white = imagecolorallocate($img, 255, 255, 255);
- $green = imagecolorallocate($img, 0, 255, 0);
- $blue = imagecolorallocate($img, 0, 0, 255);
- $aaa = imagecolorallocate($img, 255, 255, 0);
- $bbb = imagecolorallocate($img, 0, 255, 255);
- $ccc = imagecolorallocate($img, 255, 0, 255);
- $colors = array($white,$red,$green,$blue,$aaa,$bbb,$ccc);
- //画点
- for ($i=0; $i < 10; $i++) {
- imagesetpixel($img, mt_rand(0,$width), mt_rand(0,$height), $colors[mt_rand(0,6)]);
- }
- //划线
- for ($i=0; $i < 4; $i++) {
- imageline($img, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $colors[mt_rand(0,6)]);
- }
- //生成4位验证码
- $a1 = range(0, 9);
- $a2 = range(a, z);
- $a3 = range(A, Z);
- $a4 = array_merge($a1,$a2,$a3);
- $num = 4;
- $fontsize = 20;
- for ($i=0; $i < 4; $i++) {
- imagettftext($img, $fontsize, mt_rand(-45,45), $width/$num*$i+5, 30, $colors[mt_rand(0,6)], "Fonts/msyh.ttf", $a4[mt_rand(0,61)]);
- }
- imagepng($img);
- ?>
PHP学习笔记(5)GD库画验证码的更多相关文章
- 一起学习PHP中GD库的使用(三)
上篇文章我们已经学习了一个 GD 库的应用,那就是非常常用的制作验证码的功能.不过在现实的业务开发中,这种简单的验证码已经使用得不多了,大家会制作出更加复杂的验证码来使用.毕竟现在的各种外挂软件已经能 ...
- 一起学习PHP中GD库的使用(二)
在日常的开发过程中,GD 库最常用的功能就是帮我们对图片进行一些处理,当然,除了处理已有的图片之外,它也可以直接来画图,就像我们最常见的图片验证码.今天的内容主要就是和画图有关,所以最后我们也会做一个 ...
- 一起学习PHP中GD库的使用(一)
又到了一个大家非常熟悉的库了,对于图像图形的处理来说,GD 库是 PHPer 们绕不过去的一道坎.从很早很早的 CMS 或者 Discuz 时代,各类开源软件在安装的时候就会明确地指出 GD 库是它们 ...
- php笔记之GD库图片创建/简单验证码
燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it php画图:比如说验证码,缩略图,加水印都要用到GD库,所以要开启gd2库,才能用 首先找到php.in ...
- iOS学习笔记16-数据库SQLite
一.数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等.离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式: 归档:NSKeyedArchiver 偏好设置:NSU ...
- PHP学习笔记(4)GD库画五角星
<?php //加header头,不然浏览器乱码 header("content-type: image/png"); //创建画布资源 $img = imagec ...
- LearnOpenGL学习笔记(一)画个三角形
开始学习OpenGL,参考的是著名的LearnOpenGL这个网站,在这里做一些总结性的记录,只是方便自己日后查找或者记录自己的一些拓展思考,关于OpenGL的具体内容请移步: https://lea ...
- Direct2D 学习笔记(2)画刷 Brush
画刷的使用方法 需要包含的文件:<wincodec.h> 需要包含的库: "windowscodecs.lib" 资源网址: https://docs.micro ...
- 重温JSP学习笔记--JSTL标签库
以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...
随机推荐
- iOS:多线程的详细介绍
多线程: 一.概念 1.什么是进程? 程序的一次性执行就是进程.进程占独立的内存空间. 2.什么是线程? 进程中的代码的执行路径. 3.进程与线程之间的关系? 每个进 ...
- ONVIF-WSDL
http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/event/ ...
- 手写Json转换
在做项目的时候总是要手动将集合转换成json每次都很麻烦,于是就尝试着写了一个公用的方法,用于转换List to json: using System; using System.Collection ...
- 机器学习基石第一讲:the learning problem
博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) Andrew Ng的Machine Learning比較简单,已经看完.林田轩的机器 ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何声明定时器,使用定时器TON模块 TC3
TON功能块功能: 当输入为高电平时,计时器开始计时,CV表示计时器计时的当前值,而PV则是计时的目标值,当CV的值等于PV的值时,输出置1. 在主程序接下去的地方按下F2并添加TON功能块. ...
- Git学习笔记四--远程仓库
Git远程仓库 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上. 怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本 ...
- linux Java 手动GC 手动回收垃圾
logs_paths[0]="xxxx_tomcat8_9001"; logs_paths[1]="xxxx_tomcat8_9002"; for logs_p ...
- Linux-Nginx-关闭进程
当然就仅仅是介绍一条命令了,就这么简单. nginx默认创建一个工作进程 root 2713 1 0 07:56 ? 00:00:00 nginx: master process ../sbin/ng ...
- 忽略警告注解@SuppressWarnings详解
简介:java.lang.SuppressWarnings是J2SE 5.0中标准的Annotation之一.可以标注在类.字段.方法.参数.构造方法,以及局部变量上. 作用:告诉编译器忽略指定的警告 ...
- Sqlldr导入txt文件内容到数据库中
需求:数据迁移,将txt文件中的内容导入oracle数据库的表中,文本文件中数据格式如下(数据以空格隔开) 1. 创建与文本数据格式相匹配的表(此处在scott用户下创建) create table ...