利用html2canvas将当前网页保存为图片.

先分析下这个技术可实现的方式,以及优缺点吧!

前端实现

缺点是:兼容性查,需要高级浏览器支持,因为需要支持 canvas 绘图,还有就是会操作 html5 canvas api。(如果不会使用canvas的话,要么去学,要么这条方案当我没说)
优点是:用户体验性很赞,很流畅。

大体实现方法:使用canvas。最终可将绘制的图像生成成图片。用户可以另存为保存,也可以将生成的二进制图片,上传服务器,生成连接。

后端实现

缺点是:体验性会差很多,因为需要和服务器交互,体验流畅度会差一点。 优点:客户端兼容性好,基本支持所有浏览器。

大体方法:前端负责组织数据。后端负责根据数据生成图片。后端解决的话就比较简单了,有了数据买就是把位置对好,生成图片,就行了。 nodejspythonjavaphp 都用很多绘图库。

具体实现流程这里就不废话了。点到为止。下面便是具体的代码实现

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<script type="text/javascript" src="http://html2canvas.hertzen.com/build/html2canvas.js"></script>
		<script type="text/javascript" src="http://www.boolaw.com/tpl/default/js/jquery-1.8.3.min.js"></script>
		<title>html2canvas网页截图</title>
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="this is my page">
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<!-- html2canvas()中,第一个参数是要截图的Dom对象,第二个参数时渲染完成后回调的canvas对象。  -->
		<script type="text/javascript">
			$(function(){
				print();
			});
			function print(){
				html2canvas( $("#canv") ,{
					onrendered: function(canvas){
						$(‘#down_button‘).attr( ‘href‘ , canvas.toDataURL() ) ;
						$(‘#down_button‘).attr( ‘download‘ , ‘myjobdeer.png‘ ) ;
						var html_canvas = canvas.toDataURL();
						$.post(‘‘, {order_id:1,type_id:2,html_canvas:html_canvas}, function(json){
						}, ‘json‘);
					}
				});
			}
		</script>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	</head>
	<body>
		<div id="canv">
		此网页演示了html2canvas截图后将截图后的网页追加到了原网页之上		<br>		<br>
		这里可以看作是边界线		<hr/>
		</div>
		<a type="button" id="down_button">下载</a>
	<?php
if (isset($_POST[‘html_canvas‘])) {
	$order_id = $_POST[‘order_id‘];
	$type_id = $_POST[‘type_id‘];
	$html_canvas = $_POST[‘html_canvas‘];
	$image = base64_decode(substr($html_canvas, 22));
	header(‘Content-Type: image/png‘);
	$filename = $order_id . ‘-‘ . $type_id . ".png";
	$fp = fopen($filename, ‘w‘);
	fwrite($fp, $image);
	fclose($fp);
}

?>
	</body>
</html>

  

时间: 2024-08-06 02:43:34

利用html2canvas将当前网页保存为图片.的相关文章

基于html2canvas实现网页保存为图片及图片清晰度优化

本次技术调研来源于H5项目中的一个重要功能需求:实现微信长按网页保存为截图. 这里有个栗子(请用微信打开,长按图片即可保存):3分钟探索你的知识边界 将整个网页保存为图片是一个十分有趣的功能,常见于H5活动页的结尾页分享.以下则是项目中调研和踩坑的一些小结和汇总. 一.实现HTML页面保存为图片 1.1 已知可行方案 现有已知能够实现网页保存为图片的方案包括: 方案1:将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输出为包含图片展示的data URI 方案2

网页保存为图片及高清截图的优化 | canvas跨域图片配置

本次技术调研来源于H5项目中的一个重要功能需求:实现微信长按网页保存为截图. 这里有个栗子(请用微信打开,长按图片即可保存):3分钟探索你的知识边界 将整个网页保存为图片是一个十分有趣的功能,常见于H5活动页的结尾页分享.以下则是项目中调研和踩坑的一些小结和汇总. 一.实现HTML网页保存为图片 1.1 已知可行方案 现有已知能够实现网页保存为图片的方案包括: 方案1:将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输出为包含图片展示的data URI 方案2

把网页保存为图片

关于把网页保存为图片,一种就是一张一张截图,但是这种方法太过麻烦,还不方便. 第二种就是用浏览器的自带功能完成,设置-网页另存为,或者使用快捷键ctrl+m 目前360浏览器和qq浏览器是支持这种方式的

C# 整个网页保存成图片

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; using System.Runtime.InteropServices; using System.Secu

HTML页面保存为图片

方案1:将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输出为包含图片展示的data URI 方案2:使用html2canvas.js实现(可选搭配Canvas2Image.js实现网页保存为图片) 方案3:使用rasterizeHTML.js实现 原文地址:https://www.cnblogs.com/vicky24k/p/11372092.html

如何把Excel中的单元格等对象保存成图片

对于Excel中的很多对象,比如单元格(Cell),图形(shape),图表(chart)等等,有时需要将它们保存成一张图片.就像截图一样. 最近做一个Excel相关的项目,项目中遇到一个很变态的需求, 需要对Excel中的一些对象进行拍图,比如,对一个单元格设置一些颜色之后拍图,或者对一个图表,报表拍成图片.经过比较曲折的经历,终于还是完成了.拿出来分享一下. 要做Excel,首先当然是查看Excel的com对象模型.地址在这里: http://msdn.microsoft.com/en-us

利用CSS制作静态网页的注意事项

利用CSS制作静态网页主要是在<head>里面使用外联CSS文件来赋予网页样式 首先用div分区块,了解网页布局,脑子里面有个大概的页面布局 目前学习写的几种的网页布局可以分为以下几种情况: 1.页面中间 centen ,两边留白 :直接测量 centen 内容的宽度和高度,利用 maigin:auto 让内容居中即可: 2.页面顶部 head 满页面内容 ,下面centen 居中 ,两边留白:head 宽度设为100%,中间centen 内容的宽度和高度,利用 maigin:auto 让内容

Python抓取网页中的图片到本地

今天在网上找了个从网页中通过图片URL,抓取图片并保存到本地的例子: 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 # Author: xixihuang 5 # Date : 2016/08/28 10:12 AM 6 # Desc: 抓取网页,获取图片URL,抓取图片内容并保存到本地. 7 8 import os 9 import uuid 10 import urllib2 11 import cookielib 12 '''获取

利用gitcafe托管静态网页

由于我的博客系统hexo就是托管在gitcafe上面,所以对于gitcafe和github就有着比较浓厚的兴趣,前段时间又把git学习了一下,算是刚好入了个门吧:在gitcafe上有一个gitcefe-pages分支,可以用于展示我们的一个页面,给我们提供了一个免费的空间,也可以使用它的二级域名,但是项目名称和****.gitcafe.com一样(二级域名):而且一个账号只能有一个这样的页面: 如果我们要想搭建一个页面,首先我们要申请一个gitcafe的账号(github也有这个功能,但是速度没