1.获取生成验证码字体:

在php文件路径新建一个fonts文件夹,里面有字体文件。

//判定字体资源

if(empty($fonts))

$fonts="arial.ttf";

//确认字体路径

$fonts=__DIR__."/fonts/".$fonts;

$fonts=str_replace("/","\\",$fonts);

2.制作画布,随机分配背景色

$img=imagecreatetruecolor($width,$height);

$bg_color=imagecolordeallocate($img,mt_rand(200,255),mt_rand(200,250));

imagefilter($img,0,0,$bg_color);

3.增加干扰点、线

//增加干扰点:*

for($i = 0;$i < 50;$i++)

{

//随机颜色

$dots_color = imagecolorallocate($img, mt_rand(140,190), mt_rand(140,190), mt_rand(140,190));

//使用*号作为干扰点

imagestring($img, mt_rand(1,5), mt_rand(0,$width), mt_rand(0,$height), '*', $dots_color);

}

//增加干扰线

for($j = 0;$j < 10;$j++)

{

//随机线段颜色

$line_color = imagecolorallocate($img, mt_rand(80,130), mt_rand(80,130), mt_rand(80,130));

//随机线段

imageline($img,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),$line_color);

}

4.将验证码放入图片

$captcha=array(3,4,'a','i');//可以自己使用写一个方法生成数组;

$length=sizeof($captcha);

for($i = 0;$i < $length;$i++){

//给每个字符分配不同颜色

$c_color = imagecolorallocate($img, mt_rand(0,60), mt_rand(0,60), mt_rand(0,60));

//增加字体空间、大小、角度显示

imagettftext($img,mt_rand(15,25),mt_rand(-45,45),$width/($length+1)*($i+1),mt_rand(25,$height-25),$c_color,$fonts,$captcha[$i]);

}

5.保存图片

imagejpeg($img,"test.jpg",100);

推荐:php视频教程 php教程

php中如何将验证码放入页面,如何在php中生成验证码图片相关推荐

  1. PHP生产一个验证码图片,PHP使用GD库生成验证码图片,实现图片验证

    本文记录从php 下载配置GD图片生成库 到使用该库生成验证码图片,网页上实现验证码. 使用技术: php使用GD库绘图 [php版本7.3] php session 缓存 实现最终效果: 一. 配置 ...

  2. java web 生成验证码_Javaweb开发中通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 package gacl.res ...

  3. H5页面使用html2canvas实现div生成为图片,保存到手机

    在做微信公众号H5页面时,需求要求html页面生成base64图片,并保存到手机相册中.之前没做过,在网上搜了相关的资料.了解到了html2canvas.js. html2canvas首先将页面生成c ...

  4. ai如何置入_如何在 InDesign 中置入、导入和插入图像

    置入(导入)图形 "置入"命令是用于向 InDesign 插入图形的主要方法,因为该命令可以提供最高级别的分辨率.文件格式.多页面 PDF.INDD 文件和颜色支持.置入图形也称为 ...

  5. 今天来马克一下把数据库中的数据动态显示到前台页面下拉框中/默认选中

    我知道方法应该有很多,但是我觉得我接下来说的方法还是很简单的. 首先最最重要的就是在前台页面页面头部写上 <%@taglib prefix="c" uri="htt ...

  6. 中boxplot函数的参数设置_如何在Python中生成图形和图表

    在本章中,我们将学习如何在Python中生成图形和图表,同时将使用函数和面向对象的方法来可视化数据. Python中常用的一些可视化数据包括以下几种. Matplotlib. Seaborn. ggp ...

  7. jenkins中maven的安装及配置,如何在jenkins中创建maven任务。

    本文介绍了在jenkins中maven的安装及配置(安装maven及jdk的方法),以及如何在jenkins中创建maven任务. 有三点需要注意的地方. maven一定要安装在jenkins服务器上 ...

  8. vba中取小数点后两位数_如何在Excel中提取小数点后面的数字?

    Excel中,如果某个单元格中包含一个带小数,要用公式提取该数值小数点后面的数字,例如A1单元格中包含一个数值"59178.68",在B1单元格中输入下面的公式: =RIGHT(A ...

  9. python中列表长度查询,从零开始学Python|如何在Python中查找列表的长度?

    Python中的列表是有序且可更改的集合数据类型.列表也可以有重复的条目.所述的PythonLEN()方法被用于找到任何对象的长度.在本文中,我们将按以下顺序学习如何在python中查找列表的长度: ...

最新文章

  1. 被劝退的学渣,逆袭成高级语言之父,改变编程方式却说“不喜欢写代码”!...
  2. Mysql的innodb缓冲池管理(转)
  3. 苹果官方Instruments工具之Automation的介绍
  4. canvas 文字颜色_Canvas基本功能Canvas标签
  5. AUTOSAR从入门到精通100讲(二十六)-AutoSar之微控制器抽象层MCAL
  6. C++基础06-类与对象之new和malloc
  7. 第十五篇 Python之文件处理
  8. linq to xml查询绑定GridView
  9. 注意sizeof()返回的数无符号数,有符号数遇到无符号数时变成无符号数
  10. 分布式session之redis解决方案实现
  11. Delphi判断是否有全屏程序
  12. wincc 7.4 sp1在win10 下安装环境搭建
  13. 2021美赛C题M奖思路
  14. 如何在微信小程序中实现与客户实时会话(聊天)
  15. 常用公差配合表图_车间里常用的机械测量工具竟然这么多?涨知识
  16. 加拿大计算机硕士留学移民,加拿大硕士留学移民深度解析,纯干货
  17. 开心网创始人兼CEO程炳皓
  18. 《十二生肖运程图》网站欣赏
  19. 方正书版PS文件转换PDF文件PHP源程序 发布说明
  20. vue 页面使用两套el-form表单并且嵌套使用el-checkbox

热门文章

  1. Objective-C之null NaN undefined
  2. 脱裤子放屁,多此一举
  3. AdoHelper使用MySQL存储过程示例
  4. 位枚举(Bit Flags)
  5. 7-4 银行排队问题之单队列多窗口加VIP服务 (30 分)
  6. ireport参数传递json_Json传递数据两种方式(json大全)
  7. swift 选中长按项_Swift下使用UICollectionView 实现长按拖拽功能
  8. POSIX条件变量API函数
  9. ARM 汇编语言入门
  10. 安卓逆向_3 --- 篡改apk名称和图标、修改包名实现应用分身、修改资源去广告、去除re管理器广告