PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php生成验证码,缩略图及水印图的类分享大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

封装了一个类,可生成验证码,缩略图,及水印图,分享给大家

PHP;">
<>PHP
class image{
  session_start();
  //验证码类
  static public function verify($code,$width=75,$height=25,$n=4){
    header("content-type:image/png");
    // 创建画布
    $img=imagecreatetruecolor($width,$height);
    // 设置背景色
    $bgcolor=imagecolorallocate($img,mt_rand(200,255),rand(200,255));
    // 将背景色填充
    imagefill($img,$bgcolor);
    // 绘制五条弧线
    for($i=0;$i<5;$i++){ $arccolor="imagecolorallocate($img,255));" imagearc($img,mt_rand(5,($width-5)),($height-5)),mt_rand(0,360),$arccolor);="" }="" 绘制一百个点="" for($i=""><100;$i++){ $pixelcolor="imagecolorallocate($img,255));" imagesetpixel($img,mt_rand(1,($width-1)),($height-1)),$pixelcolor);="" }="" 绘制五条线段="" for($i=""><5;$i++){ $linecolor="imagecolorallocate($img,255));" imageline($img,$linecolor);="" }="" 设置边框颜色="" $bdcolor="imagecolorallocate($img,mt_rand(150,200),rand(150,200));">一个矩形无填充边框
    imagerectangle($img,($width-1),($height-1),$bdcolor);
    // 设置验证码字符串
    $str='';
    for($i=1;$i<=$n;$i++){ $str.="substr(str_shuffle($code),1);" }="" $_session['a']="$str;" for($i=""><$n;$i++){ $textcolor="imagecolorallocate($img,mt_rand(100,150),150));" imagettftext($img,1/($n+1)*$width,mt_rand(-20,20),((1-$n/(5+$n))*$width/($n-1)+$i*1/($n+1)*$width),1/2*($height+3/5*$height),$textcolor,'1.ttf',substr($str,$i,1));="" }="" 打印图像="" imagepng($img);="" 释放资源="" imagedestroy($img);="" return="" $str;="" }="" 缩略图类="" *$source需要缩略的图片="" */="" static="" public="" function="" thumbnail($source,$deletesource="false,$width=180){" $info="getimagesize($source);" getimagesize方法获得图像的详细信息="" $createfun="str_replace('/','createfrom',$info['mime']);" 将getimagesize中的['mime']中的/替换,变为imagecreatefromjpeg方法="" $src="$createFun($source);" 创建图像="" $dst_w="$width;" 缩略图的宽="" $dst_h="$width/$info[0]*$info[1];" 计算缩略图的高="" $dst="imagecreatetruecolor($dst_w,$dst_h);" 新建一个真彩色图像="" imagecopyresampled($dst,$src,$dst_w,$dst_h,$info['0'],$info['1']);="" 重采样拷贝部分图像并调整大小="" $savefun="str_replace('/','',$info['mime']);" 设置保存函数="" $ext="strrchr($source,'.');" strrchr查找指定字符在字符串中的最后一次出现,返回包括其自身在内的剩余的字符串="" $thumbnailname="str_replace($ext,$source).'_thumbnail'.$ext;" 设置保存路径="" if(!$deletesource){="" $savefun($dst,$thumbnailname);="" 保存图像="" }else{="" $savefun($dst,$thumbnailname);="" unlink($source);="" 删除原图="" }="" imagedestroy($src);="" 销毁资源="" imagedestroy($dst);="" 销毁资源="" return="" $thumbnailname;="">

}
//水印图类
/
$srcing水印图
$dsTing原图
/
static public function watermark($dstimg,$srcimg){
$dsTinfo=getimagesize($dstimg);
//getimagesize方法获取该图片的详细信息(该方法返回的是一个详细的数组)
$srcinfo=getimagesize($srcimg);
$createdst=str_replace('/',$dsTinfo['mime']);
//将getimagesize方法返回的数组中的mime值中的/替换,结果为imagecreatefromjpeg
$createsrc=str_replace('/',$srcinfo['mime']);
$dst=$createdst($dstimg);
//替换后为imagecreatefromjpeg函数,创建一个图像
$dst_w=imagesx($dst);
//获取大图的宽
$dst_h=imagesy($dst);
//获取大图的高
$src=$createsrc($srcimg);
//替换后为imagecreatefromjpeg函数,创建一个图像
$src_w=imagesx($src);
//获取水印图的宽
$src_h=imagesy($src);
//获取水印图的高
$watermaker=imagecopy($dst,($dst_w-$src_w),($dst_h-$src_h),$src_w,$src_h);
//将水印图复制在大图上
$saveFun=str_replace('/',$dsTinfo['mime']);
//将getimagesize返回数组中的['mime']中的斜杠替换为空,替换后的值为imagejpeg,即为保存函数
$ext=strrchr($dstimg,'.');
//strrchr查找指定字符在字符串中的最后一次出现,返回包括其自身在内的剩余的字符串
$watermaker=str_replace($ext,$dstimg).'_water'.time().$ext;
//保存名
$saveFun($dst,$watermaker);
//保存图片,第一个参数为要保存的图片,第二个参数为保存路径或保存名
imagedestroy($dst);
//销毁资源
imagedestroy($src);
//销毁资源
return $watermaker;

}

}
?>

大佬总结

以上是大佬教程为你收集整理的php生成验证码,缩略图及水印图的类分享全部内容,希望文章能够帮你解决php生成验证码,缩略图及水印图的类分享所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。