项目需要输入表单生成图片,可以使用下面方法生成海报,保存到手机,话不多说,上代码吧

HTML部分代码

<div class="dd">
<img src="data:images/bg2021.jpg" alt="">
<input type="text" class="username" id="username">
<input type="text" class="tel" maxlength="11" id="tel">
<input type="text" class="num" id="num">
<input type="text" class="time" id="time">
<button type="button" class="save" onclick="save()">提交生成</button>
</div>
<div id="app" class="app">
<div id="appmin" class="appmin"> </div>
</div>

js部分代码

<script>
function save(){
let canvas = document.createElement('canvas')
canvas.width = "375"
canvas.height = "667" //创建画布,并设置宽高
let ctx = canvas.getContext("2d") //背景图
var bgImg = './images/bg2021.jpg'; //随机背景图
var username = $('#username').val();
var tel = $('#tel').val();
var num = $('#num').val();
var time = $('#time').val(); loadImg([
bgImg
]).then(([img1])=> {
ctx.drawImage(img1, 0, 0, 1080, 1920) //画布上先绘制背景图`
//文字大小
ctx.font="52px Microsoft YaHei";
//字符str
//位置100,100
ctx.fillText(username,266,920);
ctx.fillText(tel,266,1050);
ctx.fillText(num,326,1170);
ctx.font="45px Microsoft YaHei";
ctx.fillText(time,370,1290); imageURL = canvas.toDataURL("image/png") //获取图片合并后的data-URL,参数可选图片格式,图片质量,详自查API`
let img3 = new Image()
$('#app').fadeIn();
document.getElementsByClassName("appmin")[0].append(img3)
img3.src = imageURL
canvas.style.display = "none"
$("#appmin").append(" <p>生成成功!长按图片保存</p><img src='images/close.png' class='close' onclick='colse()'/>")
}); } function loadImg(src) {
let paths = Array.isArray(src) ? src : [src]
let promise = paths.map((path) => {
return new Promise((resolve, reject) => {
let img = new Image()
img.setAttribute("crossOrigin", 'anonymous')
img.src = path
//只是更新了DOM对象,图片数据信息还未加载完成,加载资源是异步执行的,需要监听load事件的,事件发生后,就能获取资源
img.onload = () => {
resolve(img)
}
img.onerror = (err) => {
alert('图片加载失败')
}
})
})
return Promise.all(promise)
} function colse(){
$("#appmin").html('')
$("#app").fadeOut();
}
</script>

通过canvas画布生成图片,如有写的不到位还请大家指正,共同进步,奥利给!!!

canvas生成表单海报的更多相关文章

  1. yii2自动生成表单

    视图中: 1.要use的两个文件类 use yii\helpers\Html;   use yii\widgets\ActiveForm; 2.生成表单,以添加商品为例说明.注意红线区域:上传文件需要 ...

  2. 基于PHP和mysql的自动生成表单

    开发背景:公司要求管理系统能够由管理员在前台页面管理系统表单,能够对表单进行增删改查基本操作,表单的各个字段都可以被修改.删除,可以添加新的字段,并且不影响系统正常运行,前台表单展示要由系统自动处理, ...

  3. 表单组件 form fastadmin(生成表单元素)

    Form组件 定义文件位置: /extend/fast/Formphp 通用参数 $name 通常为我们组件的名称(name属性值),我们在后台接收时可以通过这个名称来获取到它所对应的值 $value ...

  4. java自动生成表单简单实例

    数据库表设置 tb_form(form表单) 字段 类型 约束 说明 Id Int 主键 主键 Formid Varchar2(20) 唯一 Form表单id的值 Action Varchar2(20 ...

  5. vue自定义表单生成器,可根据json参数动态生成表单

    介绍 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue 组件.结合内置17种常用表单组件和自定义组件,再复杂的表单都可 ...

  6. vue动态生成表单

    vue动态生成表单 一.下拉框 <!DOCTYPE html> <html> <head> <meta charset="utf-8" / ...

  7. Jquery 动态生成表单 并将表单数据 批量通过Ajax插入到数据库

    利用Jquery 动态生成 Table 表单 之后利用each 方法来遍历所有文本框获取文本的value值  并通过Ajax 将数据 提交到Web服务里把数据插入数据库 Html页面 <!DOC ...

  8. Yii 生成表单下拉选框及查询下拉选框

    CHtml类参考: http://www.yiichina.com/api/CHtml#activeDropDownList-detail activeDropDownList() 方法 public ...

  9. Yii 2.0 ActiveForm生成表单 ,控制表单label和filed样式,filed一旦报错,前面lable颜色跟着变,看图,帮你解决

    需要生成如下图的表单样式,图一:

  10. canvas制作表单验证码

    canvas是个非常强大的组件,网页上的验证码一般都是用服务器语言制作出来的 canvas同样是可以实现这个功能的 下面请观看效果图: 步骤呢其实也很简单 HTML部分: <form actio ...

随机推荐

  1. 在本地搭建 SVN 教程

    SVN 使用教程 以下内容参考自:SVN使用详细教程_大梦谁先觉i的博客-CSDN博客_svn使用教程 一.SVN 安装 1.1 软件下载 服务器:Downloads | VisualSVN 客户端: ...

  2. GaussDB(DWS)集群通信:详解pooler连接池

    本文分享自华为云社区<GaussDB(DWS) 集群通信系列一:pooler连接池>,作者:半岛里有个小铁盒. 1.前言 适用版本:[8.1.0(及以上)] GaussDB(DWS) 为M ...

  3. [VueJsDev] 快速入门 - 开发前小知识

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html 开发前小知识 ::: details 目录 目录 开发前小知 ...

  4. vue-helper 导致找到2个函数定义,跳转需要多点一下,禁用vue-helper即可

    vue-helper 导致找到2个函数定义,跳转需要多点一下,禁用vue-helper即可

  5. Docker 部署GitLabs 版本升级 13.9.x -> 15.3.x

    Gitlabs版本升级大版本不能直接跳级升级, 可以参考官方的升级路径.本人是从13.9.x需要升级到最新的15.3.x. 参考官方路径结合自己的实际情况成功升级. 13.9.0 -> 13.1 ...

  6. 访问Webapp目录下面的html文件变为代码

    一.问题由来 一位朋友在学习使用Servlet做练习的时候,突然出现一个问题,他去访问自己创建的html文件时,发现返回的数据是html代码,而不是解析后的页面. 很是疑惑,自己尝试着解决这个问题,很 ...

  7. 【实时渲染】3DCAT实时渲染云助力游戏上云!

    随着社会的发展技术的提升,云计算技术得到越来越多人的重视.同时随着5G的落地,游戏产业也迎来了新的革命.一些游戏厂商为了寻求新的发展机会,推出基于云计算的游戏"云游戏",将游戏平台 ...

  8. 新闻新体验!3DCAT助力开启红网“元宇宙”新闻直播间

    2022年10月20日,湖南红网新媒体集团"华章·20--红网时刻新闻党的二十大报道云展厅"正式上线.深入到新闻元宇宙,开拓新的传播领域,这也是红网党政新媒体元宇宙传播应用实验室的 ...

  9. Android优化总结

    目录介绍 1.OOM和崩溃优化 1.1 OOM优化 1.2 ANR优化 1.3 Crash优化 2.内存泄漏优化 2.0 动画资源未释放 2.1 错误使用单利 2.2 错误使用静态变量 2.3 han ...

  10. 分享一个项目:go `file_line`,在编译器得到源码行号,减少运行期runtime消耗

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 file_line https://github.com/ ...