php验证码函数 使用imagestring() imagefttext()设置字体大小
转载路径:http://hi.baidu.com/asdasd_cn/item/62977d1e26ca36e85e53b142
生成验证码图片的两个函数
第一个是用imagestring
bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )
imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。
public function captcha1() {//生成验证码图片Header("Content-type: image/PNG");$rand ="";for($i=0;$i<4;$i++){$rand.=dechex(rand(0,15));}$im = imagecreate(100,50); //制定图片背景大小$black = ImageColorAllocate($im, 0,0,0); //设定三种颜色$white = ImageColorAllocate($im, 255,255,255);$gray = ImageColorAllocate($im, 200,200,200);for($i=0;$i<3;$i++){$te=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));}imagefill($im,0,0,$gray); //采用区域填充法,设定(0,0)while(($rand=rand()%100000)<10000);//将四位整数验证码绘入图片$_SESSION['rand']=$rand;imagestring($im, 5, 30, 20, $rand, $te);// 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 座标处(图像的左上角为 0, 0)。//如果 font 是 1,2,3,4 或 5,则使用内置字体for($i=0;$i<200;$i++) //加入干扰象素{$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));imagesetpixel($im, rand()%100 , rand()%50 , $randcolor);}imageline($im,0,rand(0,100),100,rand(0,15),$randcolor);imageline($im,0,rand(0,100),100,rand(0,15),$randcolor);imageline($im,0,rand(0,100),100,rand(0,15),$randcolor);ImagePNG($im);ImageDestroy($im);}
第二个函数可根据根据字体库设置大小Linux端的注意路径
imagefttext — 使用 FreeType 2 字体将文本写入图像
array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo ] )
//可以修改字体大小的验证码function captcha2($num=4,$size=20, $width=0,$height=0){ !$width && $width = $num*$size*4/5+5; !$height && $height = $size + 10; // 去掉了 0 1 O l 等 $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW"; $code = ''; for ($i=0; $i<$num; $i++){ $code.= $str[mt_rand(0, strlen($str)-1)]; } // 画图像 $im = imagecreatetruecolor($width,$height); // 定义要用到的颜色 $back_color = imagecolorallocate($im, 235, 236, 237); $boer_color = imagecolorallocate($im, 118, 151, 199); $text_color = imagecolorallocate($im, mt_rand(0,200), mt_rand(0,120), mt_rand(0,120)); // 画背景 imagefilledrectangle($im,0,0,$width,$height,$back_color); // 画边框 imagerectangle($im,0,0,$width-1,$height-1,$boer_color); // 画干扰线 for($i=0;$i<5;$i++){ $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); imagearc($im,mt_rand(-$width,$width),mt_rand(-$height,$height),mt_rand(30,$width*2),mt_rand(20,$height*2),mt_rand(0,360),mt_rand(0,360),$font_color); } // 画干扰点 for($i=0;$i<50;$i++){ $font_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$font_color); } // 画验证码 @imagefttext($im, $size , 0, 5, $size+3, $text_color, 'c://WINDOWS//Fonts//simsun.ttc',$code); header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate"); header("Content-type: image/png"); imagepng($im);imagedestroy($im);}
附:
Linux-debian 字体默认路径:/usr/share/fonts/truetype/ttf-dejavu/
考虑到程序的可移植性,在程序目录中新建字体目录fonts来使用。
php验证码函数 使用imagestring() imagefttext()设置字体大小相关推荐
- idea html设置字体大小,intellij idea设置(字体大小、背景)
1. 配置信息说明 Intellij Idea: 2017.2.5 2.具体设置 <1> 设置主题背景.字体大小 File---->Settings----->Appearan ...
- android 设置字体大小不随系统大小变化,App字体大小不随系统改变而改变
在 "设置" , "显示" , "字体大小" 里面我们可以设置系统字体大小 App界面字体,如果被修改之后,可能就达不到理想状态的效果,界面 ...
- 【最全IDEA个性化教程】idea设置主题+恢复主题默认设置+设置选中代码颜色+关键字颜色+设置字体大小、样式、颜色+设置背景颜色、图片+设置导航栏背景颜色+设置控制台字体样式及背景+常用快捷键)
目录 下载设置主题样式+恢复主题默认设置 1 个性化代码段 1.1设置颜色 设置光标颜色 自定义图片做背景 修改代码段的颜色和背景颜色 选中代码块颜色修改,修改括号颜色 1.2 设置字体大小.格式 1 ...
- css设置字体大小会受分辨影响吗,CSS字体大小设置时的参考(转)
font-size 设置的绝对关键字: 以下几个绝对字体大小的设置是有效的.当然他们是浏览器预定义设置的.给元素指定了绝对关键字font-size的时候,该元素就不会继承父元素的字体大小 font-s ...
- vscode中设置字体大小_vscode配置使用教程
vscode设置成中文 vscode默认的语言是英文,对于英文不好的小伙伴可能不太友好.简单几步教大家如何将vscode设置成中文. 按快捷键"Ctrl+Shift+P". 在&q ...
- python使用matplotlib画图,绘制三维、二维曲线。设置字体大小以及坐标系间距等
话不多说,直接看代码和效果(不设置字体大小.逐个设置以及批量设置),其中,曲线的大小.类型以及颜色可以看我的另一篇博客. import matplotlib.pyplot as plt from mp ...
- jq设置html的fontsize,Jquery 设置字体大小(font-size)与行高(line-height)
Jquery 设置字体大小(font-size)与行高(line-height) var cssfontSize=$(".txt_container").css('font-siz ...
- Latex设置字体大小
全局模式 \documentclass[12pt]{article} 在文档的开头,有设置整个文章的字体大小,如:12pt. 局部模式 设置字体大小的命令从小到大为: \tiny \scriptsiz ...
- [css] 当页面采用rem布局时,如何解决用户设置字体大小造成的页面布局错位?
[css] 当页面采用rem布局时,如何解决用户设置字体大小造成的页面布局错位? 禁止用户缩放页面 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主 ...
最新文章
- ListView 与 ImageList
- python基础知识资料-Python基础知识(一)—简介
- 求数组中的最大数,最小数。
- 同一个局域网,不同网段的远程控制
- activity 防止多次打开_杭州下沙罐式无负压供水设备防止水质污染变频电泵
- 5码默认版块_5个小众的生活学习类的宝藏App
- 数据结构---多源最短路径
- Oracle客房管理系统论文,[转载]基于WEB的酒店管理系统论文【1】
- php语录网站,杨泽业:给你的wordpress博客添加经典语录功能,适合所有php网站
- Dubbo学习总结(1)——Dubbo入门基础与实例讲解
- 《DSP using MATLAB》示例Example 8.10
- sina邮箱的发件服务器拒绝,新浪帮助-常见问题
- 源码生成网站,开发帮助网站
- 屏蔽CDSN烦人的广告
- 企业软件是最难编写的软件
- win10前置耳机插孔没声音_win10头戴式耳机麦克风没声音怎么办
- Linux性能优化(七)——网络流量监控工具
- 关于开发板ping不通主机,360安全卫士阻拦
- 密码学---攻击类型
- 如何优化小红书笔记?教你三个小技巧,让你快速提高笔记排名
热门文章
- Microsoft SQL Server 2005 Service Pack 2 已经可以下载
- STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、单总线获取DHT11模块温湿度并通过IIC显示到屏幕(软件IIC)
- 多个文件同时写 linux sd卡_相机报错:“记忆卡已锁定”别着急,都是写保护在搞事情...
- 解决Centos 7 VNC黑屏
- 简述控制反转ioc_讲一下你理解的 DI 、IoC、DIP ?
- C# Android wifi控制灯,求助如何在基于安卓通过WiFi与Arduino通信,实现对LED灯的控制。...
- 后端技术:ELK不香了?企业级日志平台新框架 Graylog介绍
- 后端技术:MyBatis 批量插入的 3 种写法
- 【译】程序员都有的这 10 个坏习惯!
- NetFramework各个版本的特性笔记