美文网首页
HTML生成图片

HTML生成图片

作者: 黑莓小宝闪电朵朵 | 来源:发表于2019-06-29 16:07 被阅读0次

本章介绍一下如何把HTML转成图片,主要思路是用html2canvas这个插件生成把页面生成canvas,然后用canvas的toDataURL生成图片。

方程式

DOM + html2canvas => DOM=canvas + toDataURL("图片格式") = imgUrl(base64)

例子

// DOM
<div id="capture" style="padding: 10px; background: #f5da55">
    <h4 style="color: #000; ">Hello world!</h4>
</div>
// JS
<script>
  html2canvas(document.querySelector("#capture")).then(data => {
    // data 就是生成的canvas
    document.body.appendChild(canvas);
    // canvas 有个api方法toDataURL把canvas转成base64
    const domImgUrl = canvas.toDataURL('image/png');
    console.log(domImgUrl)
  });
</script>

使用方式

html2canvas(DOM元素, 配置).then(canvas => {
  console.log('转换成的canvas', canvas);
  console.log('canvasToUrl', canvas.toDataURL('图片格式'));
})

例子

const body = document.querySelector('.demo');
html2canvas(body, {
      useCORS: true,
      logging: false,
      x: 0,
      y: window.pageYOffset, // 解决canvas截图有部分空白问题
    })
      .then(function(canvas) {
        const demoUrl = canvas.toDataURL('image/png');
        console.log(demoUrl)
      })
      .catch(e => {
        console.error('error--> ', e);
      });
  }

常用配置

useCORS: true/false 一般用来解决图片跨域true(允许)false(拒绝)
logging: true/false 生成canvas的日志信息,上线前设为false
x: x轴偏移量
y: y轴偏移量
height: canvas的高度
width: canvas的宽度

技巧

  1. 可以通过window.screen.height来控制图片是否在保存后全屏显示
  2. 图片跨域可以用useCORS: true解决

结束

用useCORS解决跨域只是一种方法还是其他方法可以尝试,总体来说,初级使用html2canvas可以满足常用需求。具体细节需要调试,如果页面中用了echarts会出现整体空白的问题。
有问题请评论,看到会回复。

相关文章

  • HTML生成图片

    本章介绍一下如何把HTML转成图片,主要思路是用html2canvas这个插件生成把页面生成canvas,然后用c...

  • HTML编码生成图片

    借助html2canvas 与 canvas2image库把HTML标签生成图片 思路: 1.生成图片的样式先使用...

  • html2canvas

    html2canvas将HTML内容写入Canvas生成图片 http://caibaojian.com/html...

  • 前端截图 前端生成海报 下载

    截取内容为div 通过html2canvas截取 生成Bob | base64 保存图片到本地(无法下载的生成图片...

  • Python3.7 保存pyecharts的图片。网页打开ec

    背景:需要直接保存echarts生成图片而不是html。目标:将html处理为png格式。 首先参考官方渲染图片地...

  • html2canvas

    HTML结构生成图片前端实现 官网地址:http://html2canvas.hertzen.com/ 之前获取使...

  • html2Canvas将html转化成图片

    1、安装html2Canvs 2、相应组件中引入html2Canvas 3、创建需要生成图片的html 4、htm...

  • 使用html2canvas将html转为图片

    使用html2canvas将html转为图片,网上找的解决清晰度问题大多存在最后生成的图片错位或者偏移问题。 布局...

  • Java生成高保真图片

    来源 后台批量生成数据图片,保存快照 思路 数据->html文件->图片 解决 尝试过cssbox和phantom...

  • vue中使用html2canvas方法

    1:介绍html2canvas可以截取页面元素,生成图片2:安装 3:使用

网友评论

      本文标题:HTML生成图片

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