首先感谢网络上分享的文章:http://www.benhailong.com/index.php

js+css的demo下载地址:点击这里

把下载的文件引入到自己的项目中,对应修改js和css的路径。打开 app.js ,找到下面的代码,我这边以生成 png 格式为例

savePNGButton.addEventListener("click", function (event) {if (signaturePad.isEmpty()) {alert("请先提供签名。");} else {window.open(signaturePad.toDataURL());}
});

用下面的代码,替换掉上面代码中的 window.open(signaturePad.toDataURL()); 修改对应的url

//调用方法 如
post('/ProjectAdmin/tojson.do', {'lines' :signaturePad.toDataURL()});

并在文件末尾添加以下代码

function post(URL, PARAMS) {var temp = document.createElement("form");temp.action = URL;temp.method = "post";temp.style.display = "none";for (var x in PARAMS) {var opt = document.createElement("textarea");opt.name = x;opt.value = PARAMS[x];// alert(opt.name)temp.appendChild(opt);}

之后 我们就可以去后端写接受的方法:(这里用的是Base64格式)
我这里应用的是play框架,亲们可以根据自己的实际环境自行更改。

如果仅作回显 就可以直接把接受过来的string直接返回就好:

    public static void show(String lines) {render(lines);}

如果需要把图片储存,对Base64进行解码。生成jpeg图片。

这里应用的是play framework 1.2.7

    public static void show(String lines) {boolean b =new Application(). GenerateImage(lines, "D:\\aaaa.jpg");if (b) {System.out.println("图片存储成功");}else {System.out.println("图片存储失败");}render(lines);}

因为我接收的string格式是:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApIAAAEqCAYAAACm+bDjAAAgAElEQVR4Xu3dT6g2V54X8N/gvwbFdECGQdHu4NKBdEBlECGdhSK0kMSNjpt0XLhNeusmyUKG…

所以要对字符串进行下处理。 转换方法如下:


public boolean GenerateImage(String imgStr, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片if (imgStr == null) // 图像数据为空return false;Decoder decoder = Base64.getDecoder();try {//对字符串进行处理int j = imgStr.indexOf(',');if (j!=-1) {imgStr=imgStr.substring(j+1);}// Base64解码byte[] bytes = decoder.decode(imgStr);for (int i = 0; i < bytes.length; ++i) {if (bytes[i] < 0) {// 调整异常数据bytes[i] += 256;}}// 生成jpeg图片File file = new File(imgFilePath);if (!file.exists()) {file.createNewFile();}OutputStream out = new FileOutputStream(file);out.write(bytes);out.flush();out.close();return true;} catch (Exception e) {e.printStackTrace();return false;}}

好了 大功告成 去看看你的D盘是不是有一张图片。这个demo 完成了基本实现 ,具体根据各位大大的环境自行调试就好。

手写界面

回显

生成的本地图片

如果觉得帮助到了各位大大 请给小弟赞一下 鼓励鼓励!

对于手写签名生成图片储存和回显的实现相关推荐

  1. HTML5+jSignature插件手写签名生成图片并转换成文件流实现功能

    公司需求html5手写签名,并转换成图片上传服务器 项目结构:jquery+springboot项目需要引入js文件:jquery的jquery.min.js .jSignature插件的 jSign ...

  2. iOS手写签名生成图片贝赛尔曲线

    最近公司业务有一个需求,用户认证时需要手动签名,客户端需要将用户的签名生成图片上传给服务器.于是利用贝赛尔曲线研究了一下手动签名,和大家分享一下. Demo下载地址:https://github.co ...

  3. HTML5+jSignature插件手写签名生成图片并转换成文件流实现服务器上传功能

    简介 项目结构:html+vue+springboot html引入VUE项目vue.min.js.jQuery的jquery-3.4.1.min.js,签名:modernizr.js.jSignat ...

  4. Android通过webview实现手写签名生成图片并上传服务器

    MainActivity 签名页面 package com.sign.webview;import android.app.Activity; import android.content.Inten ...

  5. 微信小程序 - DZMDrawingBoard - (Canvas封装的画板、手写签名、生成图片、保存相册...库)

    一.简介 在微信小程序开发中,有时候需要手写签名生成图片上传服务器.制作一个手绘板.画板并支持保存图片等,然后就封装了一下:DZMDrawingBoard. DZMDrawingBoard 通过 Ca ...

  6. Android 电子签名,手写签名案列实现方法,并上传网页显示(base64)!

    最近说项目可能会用到一个电子签名,不需要识别的那种,只是一个单纯手写签名,然后以base64的格式提供给前端web页面.其实挺简单的,自定义一个手写view就上线了.Android 电子签名,手写签名 ...

  7. 在app端手写签名并保存下来(以文件形式或者是base64编码)

    最近做的项目有个需求,在app端手写签名的并保存为文件或者base64编码.所以就刚好有时间写了一下并记录下来: 先上效果图: 分析思路:因为这里是要获取手势轨迹并画出来,所以肯定是有个Touch事件 ...

  8. ai中如何插入签名_技巧不求人167期 Excel如何打印到1页纸的2种方法 Excel如何插入手写签名...

    嗨,大家好,上期我们介绍了Excel如何制作漂亮的文件盒侧标签.今天我们继续分享,在日常excel编辑过程中,常常会遇到因为数列或者行数过多导致内容不全,根本就不能打印在一张纸上面,假如分开打印到两张 ...

  9. word手写字体以假乱真_轻松制作个人“电子版手写签名”

    当微信不再单纯作为一个社交软件而升级成生产力工具,当手机中WPS.Office应用使用频率越来越高,相信大家都会需要一个电子版签名来应对工作中的"隔空文件".尤其是特殊的2020年 ...

最新文章

  1. layui table 列覆盖
  2. sourcetree回退已推送的代码
  3. 【BJDCTF 2nd—Web】做题+复现记录
  4. 【springboot】【若依(ruoyi)】@RestController 接口跨域请求
  5. php实现直播答题系统,直播答题解决方案
  6. Fiber 数据结构是怎样的?
  7. android 使用天地图,天地图嵌入到Android手机中
  8. Windows 8 Directx 开发学习笔记(八)要有光
  9. QGIS教程—缓冲区buffer
  10. 直接在Google Chrome浏览器中查看文档和PDF
  11. 货币金融学(2): 利率/金融市场
  12. ArcGIS Engine基础(7)之栅格数据集常用操作
  13. tortoise-orm 分页码(python)
  14. C# 版 flvmerge:快速合并多个flv文件
  15. 数学规划模型总结(附MatLab代码)
  16. PLC型号的选择方法
  17. AI换脸在电竞圈火了!大司马PDD大秀肌肉辣舞
  18. YY游戏云的AngularJS实践
  19. KSO-.NETCore中配置swagger分级
  20. Kubernetes调度

热门文章

  1. 公众号h5获取手机号权限_微信公众号h5获取用户openId的方法和步骤
  2. java linux常用命令_Linux常用命令
  3. UVa1395(最小值最小生成树+并查集)
  4. MBA关注:创始人CEO该拿多少工资?
  5. 手机怎么更改html打开方式,安卓如何更改文件打开方式?
  6. 解决影驰固态硬盘SSD卡顿
  7. python汇率兑换双向_汇率兑换—python第一课
  8. 投屏电视显示无法连接服务器,无法连接服务器.怎么办?
  9. 一段困扰许久的防注入代码
  10. 用Java写一个PC端的WIFI-ADB管理软件