Zend_Captcha_Image使用及部分功能重写 基于zend Framework 1.6
Posted on 2011-07-13 18:24 峰雪 阅读(874) 评论(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" 等。
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();
$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();
常见问题:
- 噪点,干扰线过多,有点看不清楚
- 不能规范图片内容
- 不能自由设置图片中字的曲度
解决办法
明天更新。