zoukankan      html  css  js  c++  java
  • html2canvas

    最近公司有个需求,实现html 页面元素转为png图像,这边用了html2canvas来实现.,这里记录一下,避免以后忘了~~

    官网链接: http://html2canvas.hertzen.com/

    npm安装

     npm install --save html2canvas

    或者下载文件引入

    上图右击另存为

    html:

    js

     

    一些简单配置:

    html2canvas(document,{scale:4,logging:false,useCORS:true}).then(function(canvas) {
    var imgUrl= canvas.toDataURL("png"); // 获取生成的图片的url
    })
    document:dom元素  // document.getElementById('elemnent')
    scale:放大倍数

    useCROS:是否允许跨域;

    logging:日志打印;

    返回的canvas 可以直接添加到页面上进行预览,也可以 转成base64给后台 imgUrl

    一些问题:

    要截取的页面若有图片,需要把图片转成base64形式

    下面是例子:

    function getBase64Image(imgurl) {
    var img = new Image();
    img.src = imgurl;
    img.setAttribute('crossOrigin', 'anonymous');
    img.onload=function(){
    var canvas = document.createElement("canvas");
    canvas.width = 300;//这个设置不能丢,否者会成为canvas默认的300*150的大小
    canvas.height = 300;//这个设置不能丢,否者会成为canvas默认的300*150的大小
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0, 300, 300);
    var dataURL = canvas.toDataURL("image/png");
    console.log(dataURL)
    $("#img").attr("src",dataURL);
    html2img();
    }
    }

    我在项目里是做了一个上传图片预览的功能,就不需要进行这一步了。

    这里简单的使用就讲完了,朋友们可以多多补充一下。

  • 相关阅读:
    前端工程师基础课程作业
    对于API接口设计的几点看法
    socket socket.io
    移动端布局
    angularJS
    bootstrop的应用
    jquery基础
    html5本地存储
    ajax
    数据库类型
  • 原文地址:https://www.cnblogs.com/liuxin-673855200/p/9579048.html
Copyright © 2011-2022 走看看