美文网首页
手写验证码和各种水印

手写验证码和各种水印

作者: 码课sir | 来源:发表于2018-07-29 22:03 被阅读0次

场景一:普通验证码

<?php
//第一步:生成随机字符串
$array=array_merge(range('a','z'),range('A','Z'),range(0,9));   //生成字母、数字的字符数组
$index=array_rand($array,4);    //随机取出4个字符,返回的字符的下标
shuffle($index);    //打乱数组
$str='';    //拼接随机字符串
foreach($index as $i) {
    $str.=$array[$i];
}
//第二步:制作背景图
$img=imagecreate(150,25);
imagecolorallocate($img,255,0,0);   //分配背景色
$color=imagecolorallocate($img,255,255,255);    //前景色
//第三步:将字符串写到图片上
$font=5;        //字号,取值1,2,3,4,5
$x=(imagesx($img)-imagefontwidth($font)*strlen($str))/2;
$y=(imagesy($img)-imagefontheight($font))/2;
imagestring($img,$font,$x,$y,$str,$color);  //将字符串写到图片上
//输出
header('content-type:image/jpeg');
imagejpeg($img);

场景二:中文验证码(需要引入中文字体到虚拟目录下)

<?php
//第一步:生成随机字符串
$array=['锄','禾','日','当','五','天','人','口','收','上','中'];
$index=array_rand($array,4);
shuffle($index);    //打乱数组
$str='';    //拼接随机字符串
foreach($index as $i) {
    $str.=$array[$i];
}
//第二步:制作背景图
$img=imagecreate(150,25);
imagecolorallocate($img,255,0,0);   //分配背景色
$color=imagecolorallocate($img,255,255,255);    //前景色
//第三步:计算字符串的范围
$size=10;   //字号
$angle=10;  //角度
$fontfile='./ttf/simhei.ttf';   //字体路径
$info=imagettfbbox($size,$angle,$fontfile,$str);    //返回文本范围
$x=(imagesx($img)-($info[4]-$info[6]))/2;   //起始点X坐标
$y=(imagesy($img)+($info[1]-$info[7]))/2;   //起始点y坐标
//第四步:将字符串写到图片上
imagettftext($img,$size,$angle,$x,$y,$color,$fontfile,$str);
//输出
header('content-type:image/jpeg');
imagejpeg($img);

场景三:打开图片添加验证码

<?php
//第一步:生成随机字符串
$array=array_merge(range('a','z'),range('A','Z'),range(0,9));   //生成字母、数字的字符数组
$index=array_rand($array,4);    //随机取出4个字符,返回的字符的下标
shuffle($index);    //打乱数组
$str='';    //拼接随机字符串
foreach($index as $i) {
    $str.=$array[$i];
}
//第二步:打开图片创建资源
$path='./captcha/captcha_bg'.rand(1,5).'.jpg';
$img=imagecreatefromjpeg($path);
//第三步:将字符串写到图片上
$color=imagecolorallocate($img,255,255,255);    //白色
if(rand(1,2)==1)
    $color=imagecolorallocate($img,0,0,0);      //黑色
$font=5;
$x=(imagesx($img)-(imagefontwidth($font)*strlen($str)))/2;
$y=(imagesy($img)-imagefontheight($font))/2;
imagestring($img,$font,$x,$y,$str,$color);
//输出
header('content-type:image/png');
imagepng($img);

场景四:文字水印

<?php
$str='呵呵呵';
//打开图片
$path='./images/face.jpg';
$img=imagecreatefromjpeg($path);
//计算字符串的范围
$size=40;   //字号
$angle=0;   //角度
$fontfile='./ttf/simhei.ttf';   //字体路径
$info=imagettfbbox($size,$angle,$fontfile,$str);    //返回文本范围
$x=imagesx($img)-($info[4]-$info[6]);   //起始点X坐标
$y=imagesy($img)-10;    //起始点y坐标
//第四步:将字符串写到图片上
$color=imagecolorallocate($img,255,0,0);
imagettftext($img,$size,$angle,$x,$y,$color,$fontfile,$str);
//输出
header('content-type:image/jpeg');
imagejpeg($img);

场景五:图片水印

<?php
$dst_img=imagecreatefromjpeg('./images/face.jpg');  //目标图
$src_img=imagecreatefrompng('./images/logo.fw.png');    //源图
$dst_x=imagesx($dst_img)-imagesx($src_img); //目标图开始粘贴的x
$dst_y=imagesy($dst_img)-imagesy($src_img); //目标图开始粘贴的y
$src_w=imagesx($src_img);   //源图的宽度
$src_h=imagesy($src_img);   //源图的高度
imagecopy($dst_img,$src_img,$dst_x,$dst_y,0,0,$src_w,$src_h);   //将源图拷贝到目标图上
//显示
header('content-type:image/png');
imagepng($dst_img);

场景六:生成缩略图、裁切图片

<?php
$dst_img=imagecreatetruecolor(300,300);         //创建目标图
$src_img=imagecreatefromjpeg('./images/4.jpg'); //创建源图资源
//制作缩略图
/*
$src_w=imagesx($src_img);
$src_h=imagesy($src_img);
imagecopyresampled($dst_img,$src_img,0,0,0,0,300,300,$src_w,$src_h);
imagepng($dst_img,'./images/small.png');
*/
//裁切
imagecopyresampled($dst_img,$src_img,0,0,160,75,300,300,300,300);
imagepng($dst_img,'./images/small02.png');

相关文章

  • 手写验证码和各种水印

    场景一:普通验证码 场景二:中文验证码(需要引入中文字体到虚拟目录下) 场景三:打开图片添加验证码 场景四:文字水...

  • 时尚手写剧本字体 for mac

    时尚手写剧本字体 for mac非常适用于各种设计,如标志,摄影,水印,报价,博客标题,海报,婚礼。有需要的朋友,...

  • 2020-06-29

    各种页面中添加水印,vue添加水印 /* 添加水印函数addWaterMarker str:水印显示的文本内容 *...

  • 验证码、水印、缩放

    随机生成验证码 1、验证码1、纯数字2、纯字母3、数字字母混合4、计算公式 3 + 5 =打乱字符串:str_s...

  • 【分享】视频去水印软件,可以消除任何水印

    【简介】 这是一款便捷的视频去水印电脑软件,操作简单,效果好,去水印后不留痕迹,适用于各种带水印视频的去水印操作。...

  • 这个短视频去水印神器你会用吗?

    最近对比了多款短视频去水印工具,全网铺天盖地广告的网页版去水印工具、各种小程序去水印工具以及短视频去水印app,我...

  • 带你玩转七牛云存储——高级篇

    七牛云图片存储优点 支持各种尺寸的图片缩放; 支持图片自动压缩; 支持水印添加:图片水印、文字水印两种模式; 图片...

  • PS去水印大全

    本篇文章的目的是让大家能够去除各种难度的水印 ●重点:使用的工具 ●难点:熟练使用去水印的各种工具并了解工具的特点...

  • python爬虫高级技术:破解验证码

    验证码探究 如果你是一个数据挖掘爱好者,那么验证码是你避免不过去的一个天坑,和各种验证码斗争,必然是你成长的一条道...

  • PDF编辑软件如何跟PDF添加水印相结合

    在目前的生活中,大家是不是经常能看见各种各样的水印呢。在图片上会有水印,在PDF文件上会有水印,就连纸币上同样都有...

网友评论

      本文标题:手写验证码和各种水印

      本文链接:https://www.haomeiwen.com/subject/lfbtvftx.html