ecstore源码学习之三 验证码生成

2015-12-15 11:50:00
hainuo
原创 2195
摘要:ecstore中的PHP验证码生成组件详解
# 说明1. 验证码组件默认为gd库生成1. 验证码组件位置为`app/base/lib/vcode/gd.php`# 验证码生成原理1. 组成 包括PHP代码`gd.php`和png图片文件夹`/Users/fengliu/pingang/public/app/base/statics/code`1. gd类先通过执行`length()`方法生成一个数组,数组包含这次验证码的png图片路径和顺序1. gd类通过执行`display()`方法输出图像数据# 注意事项1. 图像生成时有一个bug```foreach($arr as $i=>$filename){ list($w, $h) = getimagesize($filename); $source = imagecreatefrompng($filename); $t_id = imagecolortransparent($source); $rotate = imagerotate($source, rand(-20,20),$t_id); $w2 = $w*$baseH/$h; imagecopyresized($image, $rotate, $x, 0, 0, 0, $w2, $baseH, $w, $h); imagedestroy($source); imagedestroy($rotate); $x+=$w2; }```需要特别注意这个 `$t_id`,在PHP7下 这样写返回值为-1,也就是图片中没有透明色彩。解决办法是这样 ```if($t_id<0) $t_id = imagecolorallocatealpha($source, 0, 0, 0, 100);```2. ecstore这个框架真的不是多么好玩。
发表评论
伍 减 柒 =
评论通过审核后显示。