页面生成图片-html2canvas

客官°小女子只卖身不卖艺 2021-10-06 03:08 606阅读 0赞

页面生成图片-html2canvas

  • 引入js
  • 示例
    • 编写html,指定根标签id:table
    • 生成图片base64
    • base64转File对象
    • base64图片上传

引入js

  1. <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
  2. <script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.js"></script>

html2canvas详细参考官方:http://html2canvas.hertzen.com/

示例

编写html,指定根标签id:table

  1. <table id="table" border="1px" style="height: 100px;width: 100px;background-color: #CCCCCC;" align="center">
  2. <tr>
  3. <td>1</td>
  4. <td>1</td>
  5. <td>1</td>
  6. </tr>
  7. <tr>
  8. <td>2</td>
  9. <td>2</td>
  10. <td>2</td>
  11. </tr>
  12. </table>

生成图片base64

  1. $("#bun").click(function() {
  2. html2canvas(document.querySelector("#table")).then(function(canvas) {
  3. var imgUri = canvas.toDataURL();
  4. console.log(imgUri); //图片:base64字符串
  5. $("body").append('<a href="' + imgUri + '" download="'+Date.parse(new Date())+'">下载图片</a>');
  6. })
  7. })

备注:测试下载图片,可使用Firefox 和 Chrome浏览器

base64转File对象

  1. function base64URLtoFile(base64Url, filename) {
  2. var arr = base64Url.split(','),
  3. mime = arr[0].match(/:(.*?);/)[1],
  4. bstr = atob(arr[1]),
  5. n = bstr.length,
  6. u8arr = new Uint8Array(n);
  7. while(n--) {
  8. u8arr[n] = bstr.charCodeAt(n);
  9. }
  10. return new File([u8arr], filename, {
  11. type: mime
  12. });
  13. }

base64图片上传

  1. function fileupload(base64Url) {
  2. var form = document.forms[0];
  3. var formData = new FormData();
  4. formData.append("file", base64URLtoFile(base64Url, Date.parse(new Date()) + ".png"));
  5. $.ajax({
  6. url: '/file/upload',
  7. type: 'POST',
  8. data: formData,
  9. dataType: 'json',
  10. async: true,
  11. cache: false,
  12. contentType: false,
  13. processData: false,
  14. success: function(data) {
  15. console.log(data);
  16. },
  17. error: function(data) {
  18. alert(data);
  19. }
  20. });
  21. }

发表评论

表情:
评论列表 (有 0 条评论,606人围观)

还没有评论,来说两句吧...

相关阅读