移动端保存当前屏幕内容为图片,canvas图片拼接
需求:1、移动端点击分享时,截屏当前屏幕,并保存为图片 2、将截屏的图片与一张二维码图片进行拼接后,生成一张新的图片
技术栈:html2canvas.js、canvas2image.js
代码:(jquery和原生js混写了,不是很规范)
<script type="text/javascript">
//获取页面中的分享按钮
var sharebtn = document.querySelectorAll('.share');
for(let i=0;i<sharebtn.length;i++){
//给分享按钮添加touch事件
sharebtn[i].ontouchend = function(){
//html2canvas语法,截取当前屏幕h5转为canvas
html2canvas(document.body).then(canvas => {
document.body.appendChild(canvas);
var canvasbox = document.getElementsByTagName('canvas')[0];
var w = canvasbox.width,h = canvasbox.height;
//canvas转化为图片并添加到body中,以便于第二次图片拼接时获取该图片
var img = Canvas2Image.convertToPNG(canvas, w, h);
img.id = 'img1';
document.body.appendChild(img) //创建新画布并添加到body中
var canvasel = document.createElement('canvas');
canvasel.id = 'mycanvas';
canvasel.width = 750;
canvasel.height = 1654;
document.body.appendChild(canvasel); //当截屏的图片加载完成后,执行该方法
img.onload = function(){
//获取新画布
var mycanvas = document.getElementsByTagName('canvas')[1];
var w = mycanvas.width,h = mycanvas.height;
var ctx = mycanvas.getContext('2d');
//创建需要拼接的二维码图片
var lastimg = new Image();
lastimg.src='image/ewm.png';
//获取截屏的图片
var img1 = document.getElementById('img1');
//当二维码图片加载完成后执行:
lastimg.onload = function(){
//在新的canvas中绘制两张图片并将该canvas转化为图片
ctx.drawImage(img1,0,0);
ctx.drawImage(lastimg,0,1334);
var newimg = Canvas2Image.convertToPNG(mycanvas,w,h);
//将图片添加到页面的结构中 并显示该结构
document.getElementById('imgbox').appendChild(newimg);
$('.img-show-wrap').removeClass('hide');
$('.mask').removeClass('hide');
}
}
})
}
}
</script>
移动端保存当前屏幕内容为图片,canvas图片拼接的更多相关文章
- [ATL/WTL]_[中级]_[保存CBitmap到文件-保存屏幕内容到文件]
场景: 1. 在做图片处理时,比方放大后或加特效后须要保存CBitmap(HBITMAP)到文件. 2.截取屏幕内容到文件时. 3.不须要增加第3方库时. 说明: 这段代码部分来自网上.第一次学atl ...
- .Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
前言: 首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的.这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存 ...
- 使用JavaScript将当前页面保存成PDF,支持图片和文字的保存
前端开发的朋友们可能会遇到这个需求:将您负责开发的网页的全部内容,包括文字和图片,一起保存成一个PDF文件.如果采用屏幕截图的话,默认Windows操作系统的截图按钮无法完整截取超过一屏幕的屏幕内容. ...
- Highcharts结合PhantomJS在服务端生成高质量的图表图片
项目背景 最近忙着给部门开发一套交互式的报表系统,来替换原有的静态报表系统. 老系统是基于dotnetCHARTING开发的,dotnetCHARTING的优势是图表类型丰富,接口调用简单,使用时只需 ...
- 将UIWebView显示的内容转为图片和PDF
今天开发MarkEditor时要用到将 UIWebView 中显示的内容转为图片,方便转发到各个社交网络(Twiiter,Facebook,Weibo),这样内容就不受长度限制,类似于长微博. 之前关 ...
- 将PPT文件内容转换为图片放在Email邮件正文中发送
通过Email推送统计报告.一般除了要求将PPT报告文件作为附件发给用户,同时希望将报告内容在邮件中直观展示. 一份统计报告中经常包含柱状图.饼图.好看的图表,这些信息要直接在Email中展示比较复杂 ...
- python scrapy爬取知乎问题和收藏夹下所有答案的内容和图片
上文介绍了爬取知乎问题信息的整个过程,这里介绍下爬取问题下所有答案的内容和图片,大致过程相同,部分核心代码不同. 爬取一个问题的所有内容流程大致如下: 一个问题url 请求url,获取问题下的答案个数 ...
- Android ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)
最近在做ListView分页显示,其中包括图片 和文字(先下载解析文字内容,再异步加载图片)发现每次点击下一页后,文字内容加载完毕,马上向下滑动,由于这时后台在用线程池异步下载图片,我每页有20条,也 ...
- python3 用requests 保存网页以及BeautifulSoup保存图片,并且在本地可以正常显示文章的内容和图片
用requests 模块做了个简单的爬虫小程序,将博客的一篇文章以及图片保存到本地,文章格式存为'.html'.当文章保存到本地后,图片的连接可能是目标站点的绝对或者相对路径,所以要是想在本地也显示图 ...
随机推荐
- 多线程:“对象当前正在其他地方使用”如何解决 system.drawing
使用这个委托,在拥有此控件的基础窗口句柄的线程上执行指定委托 this.Invoke(new Action(() => { node.SetValues(values); }));
- 安装vue-cli和安装nuxt
安装vue-cli:1.npm install vue-cli -g2.vue install webpack 项目名3.cd 项目名4.npm install5.npm i webpack-dev- ...
- H3C端口角色的确定
- Linux 内核管理类
一个类由一个 struct class 的实例来定义: struct class { char *name; struct class_attribute *class_attrs; struct c ...
- 【23.91%】【hdu 4694】Important Sisters("支NMLGB配树"后记)(支配树代码详解)
Time Limit: 7000/7000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission( ...
- C++ windows客户端支持SSL双向认证
C++ windows客户端支持SSL双向认证,服务端是JAVA开发的,使用的证书是jks格式的.C++并不支持JKS格式的证书,所以要用openssl进行转换下. 1. 需要先把jks转成.p12文 ...
- Nodejs之使用express框架搭建WEB应用
首先创建一个index.js,在里面引入相关的中间件,如果没有这些中间件,则需要在nodejs里进入index.js所在的文件夹安装这些模块,安装命令:npm install express ex ...
- jdbc的URL配置
Microsoft SQL ServerMicrosoft SQL Server JDBC Driver (一般用来连接 SQLServer 2000)驱动程序包名:msbase.jar mssqls ...
- VRChat模型制作及上传总篇(201912)
1.视频资源及软件插件模型资源: Kodoku-shi :https://www.bilibili.com/video/av20097333(自己目前找到讲的最详细的教程,但是blender减免部分貌 ...
- 21.python的模块(Module)和包(Package)
目录 模块(Module)和包(Package) 模块(modue)的概念 模块导入方法 1.import 语句 2.from-import 语句 3.from-import* 语句 4.运行本质 i ...