html2canvas源码修改,html2canvas把div保存高清图的方法代码

http://www.bootcdn.cn/(可以搜索html2canvans)

1.选择html2canvas版本(这个版本可以放大倍数保证图片清晰)

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

varw=$("#code").width();

varh=$("#code").height();

//要将canvas的宽高设置成容器宽高的2倍

varcanvas=document.createElement("canvas");

canvas.width=w*2;

canvas.height=h*2;

canvas.style.width=w+"px";

canvas.style.height=h+"px";

varcontext=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(){

varcanvas=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";

varcontext=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);

//varnewImg=document.createElement("img");

//newImg.src=dataUrl;

//document.body.appendChild(newImg);

//console.log(imgData);

var_fixType=function(type){

type=type.toLowerCase().replace(/jpg/i,'jpeg');

varr=type.match(/png|jpeg|bmp|gif/)[0];

return'image/'+r;

};

//加工imagedata,替换mimetype

imgData=imgData.replace(_fixType(type),'image/octet-stream');

/**

*在本地进行文件保存

*@param{String}data要保存到本地的图片数据

*@param{String}filename文件名

*/

varsaveFile=function(data,filename){

varsave_link=document.createElementNS('http://www.w3.org/1999/xhtml','a');

save_link.href=data;

save_link.download=filename;

varevent=document.createEvent('MouseEvents');

event.initMouseEvent('click',true,false,window,0,0,0,0,0,false,false,false,false,0,null);

save_link.dispatchEvent(event);

};

//下载后的问题名

varfilename=aname+'肌肤检测报告'+(newDate()).getTime()+'.'+type;

//download

saveFile(imgData,filename);

},

width:1512,

height:15000

})

},2500)

}

else

{

return;

}

})

1bb6954ecedec3304afa55d15d99f2b1.png

ebd9041c68ab8ba129a065f3ea7d678a.png

本文转载自中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值