随笔 - 59, 文章 - 7, 评论 - 30, 阅读 - 33万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Zend_Captcha_Image使用及部分功能重写 基于zend Framework 1.6

Posted on   峰雪  阅读(876)  评论(1编辑  收藏  举报

在做之前,首先了解一下官方文档

复制代码
Zend_Captcha_Image

Image 适配器使用生成的字符并解析为图像,并把它变换成难以自动解密。 它需要 » GD extension,使用 TrueType 或 Freetype 支持的编译。目前,Image 适配器只能产生 PNG 图像。

Zend_Captcha_Image 集成 Zend_Captcha_Word,并附加了下列方法:

    setExpiration(
$expiration) 和 getExpiration() 指定 captcha 图像可以保留在文件系统 中的最大生命周期。一般长于会话的生命周期。每次调用 captcha 对象, 垃圾收集就运行一次,过期的图像就被清除。过期值以秒计。

    setGcFreq(
$gcFreq) 和 getGcFreg() 指定垃圾收集运行的频度。每 1/$gcFreq 垃圾收集就运行一次(缺省值为 100)。

    setFont(
$font) 和 getFont() 指定要用的字体。它是到字体文件的全路径。如果没有设置这个值,captcha 就在生成的时候抛出异常。字体是必需的。

    setFontSize(
$fsize) 和 getFontSize() 指定字体尺寸,以象素为单位,用于生成 captcha。缺省值为 24px。

    setHeight(
$height) 和 getHeight() 指定生成 captcha 图像的高度,以象素为单位。缺省值为 50px。

    setWidth(
$width) 和 getWidth() 指定生成 captcha 图像的宽度,以象素为单位。缺省值为 200px 。

    setImgDir(
$imgDir) 和 getImgDir() 指定 captcha 图像存储的目录。缺省为 "./images/captcha/" ,相对于引导(bootstrap)脚本。

    setImgUrl(
$imgUrl) 和 getImgUrl() 指定用于 HTML 标记语言的 captcha 图像的相对路径。 缺省为 "/images/captcha/"

    setSuffix(
$suffix) 和 getSuffix() 指定文件名后缀。缺省为 ".png" 。注:它的改变不影响产生的图像类型。

所有上述选项都可作为选项传递给构造器,只要去掉 
'set' 方法前缀并 把首字母变成小写:如 "suffix"、 "height""imgUrl" 等。
复制代码

一般使用方法

复制代码
$font_dir=realpath(dirname(__FILE__.'/http://www.cnblogs.com/www/font/simsun.ttc' );
$im=new zend_captcha_image(array(
                    
'font'=>$font_dir,
                    
'fontSize'=>14,
                    
'wordlen'=>4,
                    
'height'=>20,
                    
'width'=>60
                ));            
        
$im->generate();
return $im->getImgUrl().$im->getId().$im->getSuffix();
复制代码

常见问题:

  1. 噪点,干扰线过多,有点看不清楚
  2. 不能规范图片内容
  3. 不能自由设置图片中字的曲度

解决办法

明天更新。

点击右上角即可分享
微信分享提示