最近很火的“摆摊证”生成器快速开发小教程

# 折腾 # · 2020-06-16

近日网上出现了很火的“摆摊证”在线生成的娱乐小工具,实现原理也很简单。

首先准备一张纯底图和一个字体文件。文字在这里选用的是方正黑体简体(字体百度下载就行咯),纯底图如下图所示。然后额外准备一张二维码图,可以放在左下角来引流。

前端实现ajax上传图片(摆摊证上面的头像)到后端的方法:

前端HTML代码:

<input type="file" class="custom-file-input" data-toggle="custom-file-input" id="value1">
<label class="custom-file-label" for="value1">选择头像文件</label>

前端JS代码:

<script>
function Generate(){
    document.getElementById("Generate").disabled = true;
    var info = new FormData();
    //获取上传图片的files信息
    info.append("value1",$('#value1')[0].files[0]);
    //省略其他参数
    $.ajax({
        url:'',
        data:info,
        dataType:'JSON',
        type:'POST',
        cache: false,
        processData: false,
        contentType: false,
        success:function(data){
            //省略代码
        },
    })
}
</script>

后端接收前端上传的文件代码:

<?php
//用$_FILES函数获取信息
//$_FILES['myFile']['name']:客户端文件的原名称
//$_FILES['myFile']['type']:文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"
//$_FILES['myFile']['size']:已上传文件的大小,单位为字节
//$_FILES['myFile']['tmp_name']:文件被上传后在服务端储存的临时文件名
//$_FILES['myFile']['error']:和该文件上传相关的错误代码,0为无错误

if (isset($_FILES['value1']) && is_uploaded_file($_FILES['value1']['tmp_name'])) {
    //判断是否有上传错误
    if ($_FILES['value1']['error'] == 0) {
        //判断文件类型,只能上传jpeg和png,并设置文件的后缀名$suffix
        if ($_FILES['value1']['type'] == "image/jpeg") {
            $suffix = ".jpg";
        } else if ($_FILES['value1']['type'] == "image/png") {
            $suffix = ".png";
        } else {
            //文件格式错误,程序结束
        }

        //获取文件在服务端储存的临时文件名
        $imgTmpFile = $_FILES['value1']['tmp_name'];
        //重命名图片文件
        $imgFileName = rand(0000,9999).time().$suffix;
        //上传文件到目录
        move_uploaded_file($imgTmpFile, "上传目录".$imgFileName);

    } else {
        //文件上传失败,程序结束
    }
}
?>

制作生成摆摊证图片的后端接口:

<?php
//设置header
header("content-type:image/jpeg");
//获取基本信息
$value1 = "GET/POST获取头像的完整地址";
$value2 = "GET/POST获取输入的姓名";
$value3 = “GET/POST获取输入的经营范围”;
//生成随机证件号
$value4 = "B".rand(100,999).chr(rand(65,90)).rand(100,999)."号";

//画板大小
$img = imagecreatetruecolor(750, 750);
//背景图片
$default = imagecreatefromjpeg('default.jpg');
//文字TGB颜色
$black = imagecolorallocate($img, 105, 116, 136);
//字体文件
$font = "字体文件地址";
//二维码图片
$QrCode = "二维码图片链接";

//图片处理
//从字符串中的图像流新建一图像
$src = imagecreatefromstring(file_get_contents($value1));
$QrCode = imagecreatefromstring(file_get_contents($QrCode));

//将背景图片绘制到画布上
imagecopy($img,$default,0,0,0,0,750,750);
//释放与image关联的内存
imagedestroy($default);
//绘制文字,(画布,字体大小,倾斜度,X坐标,Y坐标,字体颜色,字体样式,文本)
imagettftext($img, 12, 0, 220, 435, $black, $font, $value2);
imagettftext($img, 12, 0, 220, 462, $black, $font, $value3);
imagettftext($img, 12, 0, 220, 492, $black, $font, $value4);
//合并图像
imagecopymerge($img, $src, 160, 250, 0, 0, 110, 150, 100);
imagecopymerge($img, $QrCode, 60, 610, 0, 0, 120, 120, 100);

//输出图像
imagejpeg($img);
imagedestroy($img);
?>

完成以上步骤(细节部分自己补充),就能实现摆摊证生成。其他证件(以前玩的结婚证、帅哥证、Iphone7购买记录图等等等)的制作生成方式都可以参照这篇文章来制作。

如无特殊说明,本博所有文章均为博主原创。

如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/16/

评论