美文网首页
验证码、水印、缩放

验证码、水印、缩放

作者: 博行天下 | 来源:发表于2017-04-05 20:03 被阅读0次

随机生成验证码

<?php
/*
打乱字符串:str_shuffle
提取子串:substr
产生一个0-9的数组:range(0, 9)
打乱数组:shuffle
数组合并:array_merge()
数组键值对调:array_flip
数组中提取子数组:array_slice
数组中元素执行回调函数:array_map
数字转化为ascii:chr   ord
不区分大小写字符串比较:strcasecmp
*/

//产生随机数字字符串
function rand_number($num)
{
    /*
    $str = '0123456789';
    return substr(str_shuffle($str), 0, $num);*/
    
    $arr = range(0, 9);
    shuffle($arr);
    $arr1 = array_slice($arr, 0, $num);
    return join('', $arr1);
    
    /*
    $str = join('', $arr);
    return substr(str_shuffle($str), 0, $num);*/
}

//echo rand_number(4);

//产生随机大小写字母字符串
function rand_char($num)
{
    /*
    $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $str_shu = str_shuffle($str);
    return substr($str_shu, 0, $num);*/
    
    /*
    $arr1 = range('a', 'z');
    $arr2 = range('A', 'Z');
    $arr = array_merge($arr1, $arr2);
    shuffle($arr);
    $result = array_slice($arr, 0, $num);
    return join('', $result);*/
    
    $arr1 = range('a', 'z');
    $arr2 = range('A', 'Z');
    $arr = array_merge($arr1, $arr2);
    $arr3 = array_flip($arr);
    $result = array_rand($arr3, $num);
    return join('', $result);
}

//echo rand_char(4);

function rand_num_char($num)
{
    /*
    $arr = range('a', 'z');
    $str = join('', $arr);
    $str .= strtoupper($str);
    $str .= join('', range(0, 9));
    return substr(str_shuffle($str), 0, $num);*/
    
    $str = '';
    for ($i = 0; $i < $num; $i++) {
        $rand = mt_rand(0, 2);
        switch ($rand) {
            case 0:
                $str .= chr(mt_rand(48, 57));
                break;
            case 1:
                $str .= chr(mt_rand(97, 122));
                break;
            case 2:
                $str .= chr(mt_rand(65, 90));
                break;
        }
    }
    return $str;
}

//echo rand_num_char(4);

// 1-9 + - * 1-9  3+5=
function rand_compute()
{
    $a = mt_rand(1, 9);  
    $b = mt_rand(1, 9);  
    $arr = ['+', '-', '*'];
    $rand = mt_rand(0, 2);
    return $a.$arr[$rand].$b.'=';
}
echo rand_compute();

1、验证码
1、纯数字
2、纯字母
3、数字字母混合
4、计算公式 3 + 5 =
打乱字符串:str_shuffle
提取子串:substr
产生一个0-9的数组:range(0, 9)
打乱数组:shuffle
数组合并:array_merge()
数组键值对调:array_flip
数组中提取子数组:array_slice
数组中元素执行回调函数:array_map
数字转化为ascii:chr ord
不区分大小写字符串比较:strcasecmp
2、水印

3、缩放

思考:
这个switch case是否可以优化?

function kidOfImage($srcImg, $size, $imgInfo){
//传入新的尺寸,创建一个指定尺寸的图片
$newImg = imagecreatetruecolor($size['old_w'], $size['old_h']);
//定义透明色
$otsc = imagecolortransparent($srcImg);
if( $otsc >= 0) {
//取得透明色
$transparentcolor = imagecolorsforindex( $srcImg, $otsc );
//创建透明色
$newtransparentcolor = imagecolorallocate(
$newImg,
$transparentcolor['red'],
$transparentcolor['green'],
$transparentcolor['blue']
);
} else {
$newtransparentcolor = imagecolorallocate($newImg, 0, 0, 0);
}
//背景填充透明
imagefill( $newImg, 0, 0, $newtransparentcolor );
imagecolortransparent($newImg, $newtransparentcolor);

imagecopyresized( $newImg, $srcImg, $size['x'], $size['y'], 0, 0, $size["new_w"], $size["new_h"], $imgInfo["width"], $imgInfo["height"] );
return $newImg;

}

相关文章

  • 验证码、水印、缩放

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

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

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

  • canvas-添加水印

    添加水印是在我上一章缩放图片的大小的基础上为图片添加水印。

  • 图片处理

    1、旋转2、裁剪3、截取4、平铺 自由拉伸 等比例缩放 根据颜色生成图片 截取某个view视图 文字水印 图片水印...

  • 添加水印和缩放图片

  • PIL浅谈

    知识被分享才有意义 1. 安装 2.图片缩放 3.模糊图片 4.动态生成验证码

  • 一些UIImage扩展

    压缩图片 重设图片大小 等比率缩放(依赖于重设图片大小方法) 裁剪 合成 简单渲染 GIF 添加水印

  • 手写验证码和各种水印

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

  • pr 去水印之缩放(最简单、最快)

    1.情景展示 在视频二次创作过程中,去除水印是常见需求,本文将以该视频为例,进行讲解说明,无意冒犯原创作者,仅供大...

  • 阿里云OSS 对象存储

    阿里云对象存储OSS,主要是用于存储静态资源文件,它提供了很多方便的操作图片的方法(缩放旋转水印等),在实现了OS...

网友评论

      本文标题:验证码、水印、缩放

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