图片处理/验证码

Posted on Posted in php
Tips: 本文创建于2014年5月2日,已超过 2 年,内容或图片可能已经失效!

图片处理步骤

[code lang="php"]
<?php
//创建画布
$width = 500;
$height = 400;
$img = imageCreateTruecolor($width, $height);
//var_dump($img);

//操作
//分配绿色
$blue = imageColorAllocate($img, 0, 0xff, 0);

//填充
imagefill($img, 0, 0, $blue);

//输出
//imagePng($img, './new.png');
header('Content-type: image/png');
imagePng($img);

imagedestroy($img);
?>
[/code]

验证码生成示例

[code lang="php"]
<?php

//生成码值
$char_len = 4;//码值长度
$char = array_merge(range('A','Z'), range(1, 9));//不需要0,与O冲突
$rand_keys = array_rand($char, $char_len);
shuffle($rand_keys);
$code = '';
foreach($rand_keys as $key) {
$code .= $char[$key];
}

//echo $code;
//保存session中
@session_start();
$_SESSION['captcha_code'] = $code;

//写入到图片中并展示
//1生成画布
//随机得到背景图片
$rand_bg_file = './captcha/captcha_bg' . mt_rand(1, 5) . '.jpg';
$captcha_img = imageCreateFromJpeg($rand_bg_file);
//2操作画布
if (mt_rand(1, 2) == 1) {
$str_color = imageColorAllocate($captcha_img, 0, 0, 0);//分配颜色,黑
} else {
$str_color = imageColorAllocate($captcha_img, 0xff, 0xff, 0xff);//白
}
imageString($captcha_img, 5, 55, 3, $code, $str_color);

//矩形
$rect_color = imageColorAllocate($captcha_img, 0xff, 0xff, 0xff);//白
imageRectangle($captcha_img, 0, 0, 144, 19, $rect_color);
imageRectangle($captcha_img, 1, 1, 143, 18, $rect_color);
//3输出图片内容
header('Content-Type: image/jpeg');
imageJpeg($captcha_img);
//4销毁画布
imagedestroy($captcha_img);
[/code]

» 转载请注明来源:呢喃 » 图片处理/验证码