<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>html元素转canvas并一键生成png图片(支持img图片元素)</title>
  <!-- html2canvas将Dom节点在Canvas里边画出来 -->
  <script src="js/html2canvas.min.js"></script>

  <!-- 将canvas图片保存成图片 -->
  <script src="js/canvas2image.js"></script>
  <script src="js/base64.js"></script>
  <style>
    p{
      font-size: 15px;
      font-family: 'Microsoft YaHei', 'Lantinghei SC', 'Open Sans', Arial, 'Hiragino Sans GB', 'STHeiti', 'WenQuanYi Micro Hei', 'SimSun', sans-serif;
    }
    #content{
      border-radius: 3px;
    }
    #btnSave,#Download{
      position: absolute;
      left: 65px;
      top: 320px;
      width: 78px;
      height: 30px;
      background-color: #22b4f6;
      color: #fff;
      text-align: center;
      border-radius: 3px;
      border: none;
    }
    #Download{
      margin-left: 250px;
    }
    .tx,.bt{
      border: 1px solid #999;
      width: 100px;
      height: 20px;
      border-radius: 3px;
    }
    .bt{
      background-color: #22b4f6;
      color: #fff;
      text-align: center;
      border: none;
    }
  </style>
</head>
<body>
  <div id="content" style="width:188px;height:300px;border:1px solid #22b4f6;float:left;text-align:center;">
    <p><img width="50" height="50" src="data:images/1.jpg" alt="头像"></p>
    <p>昵称:richer</p>
    <p>专业:前端 + 后端</p>
    <p>语言:html、php、mysql</p>
    <p>脚本:javascript</p>
    <p><input type="text" class="tx" placeholder="微信公众号开发"></p>
    <p><input type="button" class="bt" value="网站微站开发"></p>
  </div>
  <div style="width:60px;height:302px;float:left;text-align:center;line-height:302px;font-size:30px;color:#22b4f6;">==></div>
  <div id="images" style="width:190px;height:302px;float:left;text-align:center;line-height:302px">图片预览区</div>
  <button id="btnSave">转成图片</button>
  <button id="Download">下载图片</button>

  <script>
    /*生成canvas图形*/

    // 获取按钮id
    var btnSave = document.getElementById("btnSave");
    // 获取内容id
    var content = document.getElementById("content");
    // 进行canvas生成
    btnSave.onclick = function(){
      html2canvas(content, {
        onrendered: function(canvas) {
          //添加属性
          canvas.setAttribute('id','thecanvas');
          //读取属性值
          // var value= canvas.getAttribute('id');
          document.getElementById('images').innerHTML = '';
          document.getElementById('images').appendChild(canvas);
        }
      });
    }
  </script>
  <script>
/*
* 说明
* 不支持跨域图片
* 不能在浏览器插件中使用
* 部分浏览器上不支持SVG图片
* 不支持Flash
*/
    var Download = document.getElementById("Download");
    Download.onclick = function(){
      var oCanvas = document.getElementById("thecanvas");

      /*自动保存为png*/
      // 获取图片资源
      var img_data1 = Canvas2Image.saveAsPNG(oCanvas, true).getAttribute('src');
      saveFile(img_data1, 'richer.png');

      /*下面的为原生的保存,不带格式名*/
      // 这将会提示用户保存PNG图片
      // Canvas2Image.saveAsPNG(oCanvas);
    }
    // 保存文件函数
    var saveFile = function(data, filename){
    var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
    save_link.href = data;
    save_link.download = filename;

    var event = document.createEvent('MouseEvents');
    event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    save_link.dispatchEvent(event);
  };
</script>

</body>

</html>

H5页面转成图片并下载到本地的更多相关文章

  1. 将H5页面打包成安卓原生app

    第一步:下载HBuilderX,新建项目选择5+App新建一个空项目如下图 新建后项目目录结构如下图 第二步,将你要打包成安卓app的文件打包,最后生成的文件目录如下图 1.打包完成后,将对应文件内容 ...

  2. 前端如何将H5页面打包成本地app?

    大家都知道H5页面怎么在手机浏览器里测试,但是如何能打包成APP测试呢?因为本人的手机是IOS系统,如果用Xcode打包需要开发证书,貌似99美元一年.意外发现一个叫Hbuild的软件,简单好用,下面 ...

  3. 关于jsp页面转换成excel格式下载遇到问题及解决

    jsp页面转成excel格式的实现思路: 1.使用poi包:poi-bin-3.9-20121203 下载连接地址:http://www.apache.org/dyn/closer.cgi/poi/r ...

  4. js中保存成图片并下载

    1.保存canvas中绘制的内容为图片 HTML代码: <canvas id="canvas" width="400" height="400& ...

  5. js将canvas保存成图片并下载

    <canvas id="canvas" width="400" height="400"></canvas> < ...

  6. hml页面转化成图片

    <!DOCTYPE html><html><head><meta charset="utf-8"><meta name=&qu ...

  7. html2canvas如何将div转成图片并下载,如何将滚动条的内容截取下来

    <!DOCTYPE html> <html lang="en"> <head> <meta name="layout" ...

  8. 把html页面转化成图片——html2canvas

    test.html <div class="fx_zhezhao"></div> <div class="myImg"> & ...

  9. JavaScript实现html页面转换成图片格式

    本文提供三个JavaScript插件,并提供对应GitHub地址,自行查看使用方法: 1)dom-to-image:dom-to-image 2)html2canvas:html2canvas 3)r ...

随机推荐

  1. Android开发学习之路--图表实现(achartengine/MPAndroidChart)之初体验

      已经有一段时间没有更新博客了,在上周离开工作了4年的公司,从此不再安安稳稳地工作了,更多的是接受挑战和实现自身价值的提高.离开了嵌入式linux,从此拥抱移动互联网,也许有点为时已晚,但是相信通过 ...

  2. DFS(深度优先)算法编程实践

    DFS定义 DFS(Depth-First-Search)深度优先搜索算法,是搜索算法的一种.是一种在开发爬虫早期使用较多的方法.它的目的是要达到被搜索结构的叶结点 . 特点 每次深度优先搜索的结果必 ...

  3. Android Paint类介绍以及浮雕和阴影效果的设置

    Paint类介绍 Paint即画笔,在绘制文本和图形用它来设置图形颜色, 样式等绘制信息. 1.图形绘制 setARGB(int a,int r,int g,int b); 设置绘制的颜色,a代表透明 ...

  4. 【安卓中的缓存策略系列】安卓缓存之内存缓存LruCache

    缓存策略在移动端设备上是非常重要的,尤其是在图片加载这个场景下,因为图片相对而言比较大会花费用户较多的流量,因此可用缓存方式来解决,即当程序第一次从网络上获取图片的时候,就将其缓存到存储设备上,这样在 ...

  5. love~LBJ,奥布莱恩神杯3

    时间:2016年6月20日8:00:地点:美国金州甲骨文(Oracle)球馆:事件:G7大战,又一次见证伟大赛季奥布莱恩神杯得主--金州勇士VS克利夫兰骑士......     可以说,这是NBA以来 ...

  6. Android实现登录小demo

    安卓,在小编实习之前的那段岁月里面,小编都没有玩儿过,如果说玩儿过,那就是安卓手机了,咳咳,敲登录的时候有种特别久违的熟悉,这种熟悉的感觉就和当时敲机房收费系统一样,那叫一个艰难啊,不过小编相信,在小 ...

  7. Java-IO之InputStreamReader和OutputStreamWriter

    InputStreamReader和OutputStreamWriter是字节流通向字符流的桥梁.它使用指定的差染色体读写字节并将其解码为字符.InputStreamReader的作用是将字节输入流转 ...

  8. Java:函数

    import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ Scanner ...

  9. Java Web 高性能开发,第 3 部分: 网站优化实战

    这个系列的前两篇,介绍了前端的优化技术,这些技术秉承了前人至高无上的智慧,我只是负责吸收和传播.然而,这些技术一般也都是某某大型网站的技术经验,我们大部分人或许只能接触到相对小规模的网站,小规模的网站 ...

  10. [Asp.Net]Understanding Built-In User and Group Accounts in IIS

    昨天把程序IIS6迁移到IIS7,出现异常 解决办法:文件夹选项权限增加IIS_IUSER 资料来源: http://www.iis.net/learn/get-started/planning-fo ...