转载路径: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   所代表的图像的 xy   坐标处(这是字符串左上角坐标,整幅图像的左上角为 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()设置字体大小相关推荐

  1. idea html设置字体大小,intellij idea设置(字体大小、背景)

    1. 配置信息说明 Intellij Idea: 2017.2.5 2.具体设置 <1> 设置主题背景.字体大小 File---->Settings----->Appearan ...

  2. android 设置字体大小不随系统大小变化,App字体大小不随系统改变而改变

    在 "设置" , "显示" , "字体大小" 里面我们可以设置系统字体大小 App界面字体,如果被修改之后,可能就达不到理想状态的效果,界面 ...

  3. 【最全IDEA个性化教程】idea设置主题+恢复主题默认设置+设置选中代码颜色+关键字颜色+设置字体大小、样式、颜色+设置背景颜色、图片+设置导航栏背景颜色+设置控制台字体样式及背景+常用快捷键)

    目录 下载设置主题样式+恢复主题默认设置 1 个性化代码段 1.1设置颜色 设置光标颜色 自定义图片做背景 修改代码段的颜色和背景颜色 选中代码块颜色修改,修改括号颜色 1.2 设置字体大小.格式 1 ...

  4. css设置字体大小会受分辨影响吗,CSS字体大小设置时的参考(转)

    font-size 设置的绝对关键字: 以下几个绝对字体大小的设置是有效的.当然他们是浏览器预定义设置的.给元素指定了绝对关键字font-size的时候,该元素就不会继承父元素的字体大小 font-s ...

  5. vscode中设置字体大小_vscode配置使用教程

    vscode设置成中文 vscode默认的语言是英文,对于英文不好的小伙伴可能不太友好.简单几步教大家如何将vscode设置成中文. 按快捷键"Ctrl+Shift+P". 在&q ...

  6. python使用matplotlib画图,绘制三维、二维曲线。设置字体大小以及坐标系间距等

    话不多说,直接看代码和效果(不设置字体大小.逐个设置以及批量设置),其中,曲线的大小.类型以及颜色可以看我的另一篇博客. import matplotlib.pyplot as plt from mp ...

  7. jq设置html的fontsize,Jquery 设置字体大小(font-size)与行高(line-height)

    Jquery 设置字体大小(font-size)与行高(line-height) var cssfontSize=$(".txt_container").css('font-siz ...

  8. Latex设置字体大小

    全局模式 \documentclass[12pt]{article} 在文档的开头,有设置整个文章的字体大小,如:12pt. 局部模式 设置字体大小的命令从小到大为: \tiny \scriptsiz ...

  9. [css] 当页面采用rem布局时,如何解决用户设置字体大小造成的页面布局错位?

    [css] 当页面采用rem布局时,如何解决用户设置字体大小造成的页面布局错位? 禁止用户缩放页面 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主 ...

最新文章

  1. ListView 与 ImageList
  2. python基础知识资料-Python基础知识(一)—简介
  3. 求数组中的最大数,最小数。
  4. 同一个局域网,不同网段的远程控制
  5. activity 防止多次打开_杭州下沙罐式无负压供水设备防止水质污染变频电泵
  6. 5码默认版块_5个小众的生活学习类的宝藏App
  7. 数据结构---多源最短路径
  8. Oracle客房管理系统论文,[转载]基于WEB的酒店管理系统论文【1】
  9. php语录网站,杨泽业:给你的wordpress博客添加经典语录功能,适合所有php网站
  10. Dubbo学习总结(1)——Dubbo入门基础与实例讲解
  11. 《DSP using MATLAB》示例Example 8.10
  12. sina邮箱的发件服务器拒绝,新浪帮助-常见问题
  13. 源码生成网站,开发帮助网站
  14. 屏蔽CDSN烦人的广告
  15. 企业软件是最难编写的软件
  16. win10前置耳机插孔没声音_win10头戴式耳机麦克风没声音怎么办
  17. Linux性能优化(七)——网络流量监控工具
  18. 关于开发板ping不通主机,360安全卫士阻拦
  19. 密码学---攻击类型
  20. 如何优化小红书笔记?教你三个小技巧,让你快速提高笔记排名

热门文章

  1. Microsoft SQL Server 2005 Service Pack 2 已经可以下载
  2. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、单总线获取DHT11模块温湿度并通过IIC显示到屏幕(软件IIC)
  3. 多个文件同时写 linux sd卡_相机报错:“记忆卡已锁定”别着急,都是写保护在搞事情...
  4. 解决Centos 7 VNC黑屏
  5. 简述控制反转ioc_讲一下你理解的 DI 、IoC、DIP ?
  6. C# Android wifi控制灯,求助如何在基于安卓通过WiFi与Arduino通信,实现对LED灯的控制。...
  7. 后端技术:ELK不香了?企业级日志平台新框架 Graylog介绍
  8. 后端技术:MyBatis 批量插入的 3 种写法
  9. 【译】程序员都有的这 10 个坏习惯!
  10. NetFramework各个版本的特性笔记