javascript将html代码绘制为图片

  javascript如何将html代码转为图像,示例使用到了html2canvas这个类库,将html dom对象绘制到canvas中,然后在调用canvas的toDataURL得到图片base64字符串内容,设置img的src为toDataURL返回的内容即可显示html对应的图片。如果需要保存图片,需要自己将base64内容到服务器端进行2进制转换保存为图片后设置content-disposition为attachment进行图片文件的保存,要不浏览器会直接显示图片,而不是弹出保存对话框。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>javascript将html代码绘制为图片</title>
<style>#render{position:absolute;left:0;top:0;display:none}</style>
</head>
<body><div id="render"></div>
请输入html代码:<textarea id="html" rows="8" cols="80"><b style="color:red">html代码</b><br />好好</textarea><br />
<input type="button" onclick="renderHTMLAndSave()" value="将textarea输入的html绘制到canvas" /><br />
<script type="text/javascript" src="/demo/html2canvas/html2canvas.js"></script>
<script type="text/javascript">
    var canvas,render,html;
    function renderHTMLAndSave() {
        if (!render) {
            render = document.getElementById('render');
            html = document.getElementById('html');
        }
        render.style.display = 'block';//必须要显示,要不绘制不出来
        if (canvas) document.body.removeChild(canvas);//删除上一次生成的canvas对象
        render.innerHTML = html.value;//设置显示容器呈现html UI
        html2canvas(render).then(function (canvas) {
            render.style.display = 'none';
            window.canvas = canvas;
            document.body.appendChild(canvas);
        });
    }
</script>
</body>
</html>

参考
Content-Disposition inline attachment介绍
Asp.Net图片base64编码相互转换
 

加支付宝好友偷能量挖...


原创文章,转载请注明出处:javascript将html代码绘制为图片

评论(0)Web开发网
阅读(1293)喜欢(1)JavaScript/Ajax开发技巧