网页截屏调研记录

  对于普通网页,截屏的实现并不难,网上也有成熟的插件,使用最多的应该是html2canvas,自己也试了下,能达到效果,我以为这部分的工作就这么简单交差了

然而我们的网页并不普通,网页中还嵌入了视频,而且不是同源的,导致截出来的图片视频区域是空白

网上继续查资料,才发现是跨域问题

继续查找能不能解决跨域问题,html2canvas是有配置,然而其针对的是服务端允许跨域的情况,意思是说服务端不允许跨域,设置了也没效果,而我们网页的视频源也没办法设置

很绝望,继续查找资料

大概了解到网页截屏不管什么插件,基本使用canvas和svg实现,而且都会出现跨域资源无法加载的问题

参考以下一篇文章

https://juejin.im/entry/58b91491570c35006c4f7fdf

看了基于dom转化对应我们项目是行不通的,于是继续寻找别的方案

研究过phantomjs,然而其实际是个无界面浏览器,我们的网站需要登录,它不能截取我们登录后的网页

网上看下有没有可用的Chrome插件,结果看了几个都需要额外的操作

有个牛牛截图可以,但需要额外安装客户端

然而领导明确需求:

1.无感知截图,即点击一个按钮,默认截图,不需要额外的操作

2.不需要额外安装客户端等插件

跟领导反应,不使用插件没办法完成,像webqq等都是通过插件实现的,

前端不行,那转向后端

后端一位同学表示通过ffmpeg可以截取rtsp视频流的图片

于是我们的方案是把html2canvas截的图和ffmpeg合成一张完整的图

到此告一段落

原文地址:https://www.cnblogs.com/jieker/p/10628115.html

时间: 2024-10-12 21:22:59

网页截屏调研记录的相关文章

phantomjs介绍-(js网页截屏、javascript网页解析渲染工具)

phantomjs介绍-(js网页截屏.javascript网页解析渲染工具) phantomjs 是一个基于js的webkit内核无头浏览器 也就是没有显示界面的浏览器,这样访问网页就省去了浏览器的界面绘制所消耗的系统资源,比较适合用于网络测试等应用 .利用这个工具,我们可以轻松的搭建一个接口用于获取我们想要的url的整页截屏. PhantomJS is a headless WebKit with JavaScript API. It has fast and native support

Html5 实现网页截屏 页面生成图片(图文)

html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能. 因为每个浏览器渲染页面的方式都不尽相同,所以生成的图片也不太一样. 环境要求: jQuery兼容性: Firefox 3.5+, Chrome, Opera, IE9 官网主页: http://html2canvas.hertzen.com/ 测试生成的图片效果 有些元素的样式没有完全展示出来 1 <html> 2 <head> 3 <meta name=&q

如何做一个简单的Chrome Extension用于网页截屏

Chrome extension是一个文件包,里面包含了一个配置文件manifest.json,以及一些用于Web开发的文件和资源 (HTML, JavaScript, CSS,等). Chrome Extension开发指南 Chrome Extension Overview Chrome Extension Debugging Chrome Extension Samples 如何实现网页截屏功能 看一下manifest文件: {       "name": "Scree

Java实现网页截屏功能(基于phantomJs)

公司最近有个需求:把用户第一次的测量身体信息和最近一次测量信息进行对比,并且需要把对比的数据截成图片可以发给用户(需要在不打开网页的情况下实时对网页进行截图然后保存到服务器上,返回图片地址),通过网上的一些文章可以发现有以下几种实现方式:参考文章https://blog.csdn.net/wanglq0086/article/details/60761614 Robot 利用JNI,调用第三方C/C++组件 DJNativeSwing组件 利用html2canvas 利用html2image p

Javascript网页截屏的方法

最近我在研究开发一个火狐插件,具体的功能是将网页内容截屏并分享到微博上.目前基本功能已经实现,大家可以在 @程序师视野 里看到用这个截图插件分享的微博的效果. 之前我曾写过如何将canvas图形转换成图片和下载canvas图像的方法,这些都是在为这个插件做技术准备. 技术路线很清晰,将网页的某个区域的内容生成图像,保持到canvas里,然后将canvas内容转换成图片,保存到本地,最后上传到微博. 我在网上搜寻到html2canvas这个能将指定网页元素内容生成canvas图像的javascri

JAVA之网页截屏

之前我也写过JAVA实现截屏效果,用了两三种方法,发现还是现在的这种方法最简单.但是要注意的是此方法仅适用于JdK1.6及以上版本. import java.awt.AWTException; import java.awt.Desktop; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.awt.Robot; im

Python盗号原理-代码实现截屏键盘记录远程发送(不要做坏事)

这年头盗号的从出不穷,不是脱裤就是社工钓鱼.今天呢我们就以前面的几篇技术文章做铺垫,来讲一下python盗号的原理(学习用途,请勿用于违法犯罪),知己知彼方能百战不殆嘛. 脱裤我们就不多提了,无非就是过滤不严谨导致的sql注入,或者数据库存储不安全,这个本篇文章暂且不说,当然有感兴趣的,我后面的文章或许也会讲讲. 最简单的,也是技术手段相对较低的盗号方式当属钓鱼了(当然,社工更考验心理),除了钓鱼网站,就是发布某些带有诱惑性的工具,诱导消费者下载,运行后开启后门,或者启用钩子进行键盘记录.本篇文

Java实现网页截屏

代码如下 <span style="font-size:18px;">package com.util; import java.awt.AWTException; import java.awt.Desktop; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.awt.Robot; impor

Chrome浏览器网页截全屏算法以及实现

做个一个简单的批量下载插件叫“挖一下”, 正如插件的名字一样,采集网页里面的所有图片,根据筛选条件过滤不需要的图片,最后下载选中的图片. 索性把网页也一起给截了,截屏分两种: 1.可见内容截屏 2.完整网页截屏(包括可见和不可见) 可见内容截屏: 实现原理:直接通过chrome自带的截屏方法(chrome.tabs.captureVisibleTab),回调函数返回图片类型和数据信息 chrome.tabs.captureVisibleTab({format:'png'}, function(s