js实现html截图生成图片

   没有华丽的开场,直入主题,这就是题主随笔风格。随笔既是日常工作积累,也可理解是个工作笔记,方便日后用到之处快速的有方可寻。

   先讲一个需求场景: 定制网页截图传给服务器端保存,用户关注公众号后自动回复该截图

   想必js实现网页截图,大家第一思路是将网页转成canvas再由canvas转成base64图片。没错,我的思路也是这样,在实际开发过程中各种试错、调研也验证了该方案是最佳最便利的html转图片的方案(肯定是!没有之一)。那么方案确定后,大体的实现思路也就可以往该方向去做了。由于开发时间有限,这里我们就不自己手写html2canvas的过程了,最快的速度当然是找现成的插件,经过插件之间的对比,不是样式丢失就是图片丢失,算什么截屏啊?

这里给大家推荐一个我用了还不错的插件:html2canvas.js  github链接:https://github.com/niklasvh/html2canvas

  关键代码:

  

<!--引入html2canvas库-->
<script src="game/js/html2canvas.min.js"></script>
<script>
    html2canvas(document.body).then(function(canvas) {
    var base64 = canvas.toDataURL("image/png");
        console.log(base64 );//生成本地base64图片
    });
</script>

  当然,以上还不算个完整的demo!可能有部分朋友会发现截图不完整或者报跨域的错

  这是因为你页面中本地案例的图片或者其他网络图片和你当前项目不在一个域名下,那怎么解决呢?把网络图片或者不在同一域名下的图片转成base64本地图片,再进行截图。

  具体方法如下:

<script>
    function Image2Base64(img) {
         var canvas = document.createElement("canvas");
         canvas.width = img.width;
         canvas.height = img.height;
         var ctx = canvas.getContext("2d");
         ctx.drawImage(img, 0, 0, img.width, img.height);
         var dataURL = canvas.toDataURL("image/png");
         return dataURL
     }
</script>

原文地址:https://www.cnblogs.com/gaofengming/p/9067167.html

时间: 2024-10-28 00:51:41

js实现html截图生成图片的相关文章

js依赖mui.css生成图片验证码

js依赖mui.css生成图片验证码 相关css和js引入路径 https://cdnjs.cloudflare.com/ajax/libs/mui/3.7.1/css/mui.css https://cdnjs.cloudflare.com/ajax/libs/mui/3.7.1/css/mui.min.css https://cdnjs.cloudflare.com/ajax/libs/mui/3.7.1/fonts/mui.ttf https://cdnjs.cloudflare.com/

截图生成图片并保存到相册

// 保存到相册 $("#content").on("click", "#savepic", function () { $("#waitingupload").removeClass("heisebghid").addClass("heisebg"); // 调用html2canvas生成截图 html2canvas($("#orderInfo")[0], { al

如何更改OS系统下截图生成图片格式 jpg pdf

Mac系统下快速截屏的快捷键: 1.截全屏: shift + command + 3 2.选取截屏 shift + command + 4 生成的图片,系统默认格式忘了,反正不好用,用下面命令更改生成格式 localhost:~ MuyunLee$ defaults write com.apple.screencapture type jpg 想生成pdf,  就把jpg 换成 pdf 就可以了 ~ all done!

js获取视频截图

参考:https://segmentfault.com/q/1010000006717959问题:a.获取的好像是第一帧的图?第一帧为透明图时,获取的个透明图片b.得先加载视频到video,做视频上传的时候体验不太友好c.qq空间能截取视频图片,不知道怎么实现的 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </h

8年javascript知识点积累

08年毕业就开始接触javascript,当时是做asp.net发现很多功能用asp.net控件解决不了,比如checkbox单选,全选问题,自动计算总价问题,刷新问题,等等.那时感觉javascript好讨厌,没有好的框架和调试工具,痛不欲生.如今javascript框架漫天飞舞,jquery,zepto,AngularJs,各种应用层出不穷,动画,游戏,单页网站,甚至手机app,那里都少不了javascript,不禁感叹,还有没有javascript不能做的事情么? 8年了,如今多半时间是管

JavaScript - 收藏集 - 掘金

Angular 中的响应式编程 -- 浅淡 Rx 的流式思维 - 掘金第一节:初识Angular-CLI第二节:登录组件的构建第三节:建立一个待办事项应用第四节:进化!模块化你的应用第五节:多用户版本的待办事项应用第六节:使用第三方样式库及模块优化用第七节:给组件带来活力Rx--隐藏在 Angular 中的利剑Redux你的 A... Electron 深度实践总结 - 前端 - 掘金思维导图 前言: Electron 从最初发布到现在已经维护很长一段时间了,但是去年才开始慢慢升温.笔者个人恰好

RequireJS对文件合并与压缩实现方法

RequireJS 是一个JavaScript模块加载器.它非常适合在浏览器中使用, 它非常适合在浏览器中使用,但它也可以用在其他脚本环境, 就像 Rhino and Node. 使用RequireJS加载模块化脚本将提高代码的加载速度和质量. 本文为大家讲解的是requireJS对文件合并与压缩的实现方法,感兴趣的同学参考下. RequireJS提供了一个打包与压缩工具r.js,r.js的压缩工具使用UglifyJS进行压缩的或Closure Compiler.r.js下载 requireJS

Struts2之ajax提交表单(借助jquery插件)

1 index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&q

requireJS对文件合并与压缩(二)

requireJS对文件合并与压缩 RequireJS提供了一个打包与压缩工具r.js,r.js的压缩工具使用UglifyJS进行压缩的或Closure Compiler.r.js下载 requireJS对互相依赖模块进行合并与压缩,可以对JS,CSS压缩,甚至可以对整个项目进行打包.r.js是基于nodeJS的,所以本机电脑上需要有node环境. 下面还是来看看我整个项目结构吧,如下: 现在是这样的,app/a.js,app/b.js,app/c.js,app/d.js,有依赖关系,分别是a依