html2canvas把div保存图片高清图(图文教程)

互联网 18-5-18
1.选择html2canvas版本(这个版本可以放大倍数保证图片清晰)

默认生成的 canvas 图片在 retina 设备上显示很模糊,处理成 2 倍图能解决这个问题:

var w = $("#code").width();  var h = $("#code").height();  //要将 canvas 的宽高设置成容器宽高的 2 倍  var canvas = document.createElement("canvas");  canvas.width = w * 2;  canvas.height = h * 2;  canvas.style.width = w + "px";  canvas.style.height = h + "px";  var context = canvas.getContext("2d");  //然后将画布缩放,将图像放大两倍画到画布上  context.scale(2,2);  html2canvas(document.querySelector("#code"), {      canvas: canvas,      onrendered: function(canvas) {          ...      }  });

下载方法:

.on('click','.download',function(){                  $('#mycanvas').remove();                  var _height=$('.skinReport').height();                  //滚到顶部                  $('html, body').animate({scrollTop:0});                  if(confirm('是否下载肌肤检测报告?'))                  {                      setTimeout(function(){                          var canvas = document.createElement("canvas"),                              w=$('#skinReport').width(),                              h=$('#skinReport').height();                          canvas.width = w * 2;                          canvas.height = h * 2;                          canvas.style.width = w + "px";                          canvas.style.height = h + "px";                          var context = canvas.getContext("2d");  //然后将画布缩放,将图像放大两倍画到画布上                          context.scale(2,2);                          html2canvas(document.getElementById('skinReport'), {                              allowTaint: false,                              taintTest: true,                              canvas: canvas,                              onrendered: function(canvas) {                                  canvas.id = "mycanvas";                                  canvas.style.display = 'none';                                  document.body.appendChild(canvas);                                  //生成base64图片数据                                  imgData = canvas.toDataURL(type);                                  //var newImg = document.createElement("img");                                  //newImg.src =  dataUrl;                                  //document.body.appendChild(newImg);                                  //console.log(imgData);                                  var _fixType = function(type) {                                      type = type.toLowerCase().replace(/jpg/i, 'jpeg');                                      var r = type.match(/png|jpeg|bmp|gif/)[0];                                      return 'image/' + r;                                  };                                  // 加工image data,替换mime type                                  imgData = imgData.replace(_fixType(type),'image/octet-stream');                                  /**                                   * 在本地进行文件保存                                   * @param  {String} data     要保存到本地的图片数据                                   * @param  {String} filename 文件名                                   */                                  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);                                  };                                  // 下载后的问题名                                  var filename = aname+'肌肤检测报告' + (new Date()).getTime() + '.' + type;                                  // download                                  saveFile(imgData,filename);                              },                              width:1512,                              height:15000                          })                      },2500)                  }                  else                  {                      return;                  }              })

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

HTML 实现背景图片的替换

深入了解HTML5 Canvas标签的基本用法

HTML5的video标签操作视频详解

以上就是html2canvas把div保存图片高清图(图文教程)的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 高清
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:HTML中如何引入CSS

相关资讯