需求: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图片拼接的更多相关文章

  1. [ATL/WTL]_[中级]_[保存CBitmap到文件-保存屏幕内容到文件]

    场景: 1. 在做图片处理时,比方放大后或加特效后须要保存CBitmap(HBITMAP)到文件. 2.截取屏幕内容到文件时. 3.不须要增加第3方库时. 说明: 这段代码部分来自网上.第一次学atl ...

  2. .Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

    前言: 首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的.这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存 ...

  3. 使用JavaScript将当前页面保存成PDF,支持图片和文字的保存

    前端开发的朋友们可能会遇到这个需求:将您负责开发的网页的全部内容,包括文字和图片,一起保存成一个PDF文件.如果采用屏幕截图的话,默认Windows操作系统的截图按钮无法完整截取超过一屏幕的屏幕内容. ...

  4. Highcharts结合PhantomJS在服务端生成高质量的图表图片

    项目背景 最近忙着给部门开发一套交互式的报表系统,来替换原有的静态报表系统. 老系统是基于dotnetCHARTING开发的,dotnetCHARTING的优势是图表类型丰富,接口调用简单,使用时只需 ...

  5. 将UIWebView显示的内容转为图片和PDF

    今天开发MarkEditor时要用到将 UIWebView 中显示的内容转为图片,方便转发到各个社交网络(Twiiter,Facebook,Weibo),这样内容就不受长度限制,类似于长微博. 之前关 ...

  6. 将PPT文件内容转换为图片放在Email邮件正文中发送

    通过Email推送统计报告.一般除了要求将PPT报告文件作为附件发给用户,同时希望将报告内容在邮件中直观展示. 一份统计报告中经常包含柱状图.饼图.好看的图表,这些信息要直接在Email中展示比较复杂 ...

  7. python scrapy爬取知乎问题和收藏夹下所有答案的内容和图片

    上文介绍了爬取知乎问题信息的整个过程,这里介绍下爬取问题下所有答案的内容和图片,大致过程相同,部分核心代码不同. 爬取一个问题的所有内容流程大致如下: 一个问题url 请求url,获取问题下的答案个数 ...

  8. Android ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)

    最近在做ListView分页显示,其中包括图片 和文字(先下载解析文字内容,再异步加载图片)发现每次点击下一页后,文字内容加载完毕,马上向下滑动,由于这时后台在用线程池异步下载图片,我每页有20条,也 ...

  9. python3 用requests 保存网页以及BeautifulSoup保存图片,并且在本地可以正常显示文章的内容和图片

    用requests 模块做了个简单的爬虫小程序,将博客的一篇文章以及图片保存到本地,文章格式存为'.html'.当文章保存到本地后,图片的连接可能是目标站点的绝对或者相对路径,所以要是想在本地也显示图 ...

随机推荐

  1. fastclick使用与 fastclick ios11.3相关bug原因(ios输入框点击变得不灵敏,ios input失焦后,页面上移,点击不了)

    FastClick 移动设备上的浏览器默认会在用户点击屏幕大约延迟300毫秒后才会触发点击事件,这是为了检查用户是否在做双击.为了能够立即响应用户的点击事件,就有了FastClick. 安装fastc ...

  2. Spring security用户URL权限之FilterSecurityInterceptor

    总: 用户通过浏览器发送URL地址,由FilterSecurityInterceptor判断是否具有相应的访问权限. 对于用户请求的方法权限,例如注解@PreAuthorize("hasRo ...

  3. svn 冲突解决办法(黄色感叹号)

    右键:"TortoiseSVN"->"Resolved..."已解决的..., 选中全部的文件,然后OK,,然后就可以commit提交了.

  4. MySQL视图 definer & invoker 权限

    1.创建视图 CREATE VIEW `NewView`AS SELECT `user`.USER_ID, `user`.USER_NAME, department.DEPT_ID, departme ...

  5. 2018-2-13-win10-uwp-绑定静态属性

    title author date CreateTime categories win10 uwp 绑定静态属性 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 1 ...

  6. GapMinder气泡图:在线互动图表数据平台

    GapMinder:在线互动图表数据平台是一个将国际统计数据转换成活动的.交互的和有趣的图表,以在线统计数据为基础的互动图表集的完美世界.目的是通过增进对可以自由访问的公共统计数据的使用和理解,以促进 ...

  7. "技术框架太多,多的眼花缭乱,如何在众多选择中找到自己的方向?

    "技术框架太多,多的眼花缭乱,如何在众多选择中找到自己的方向?",经常有人这么问我. 咱们从开源项目说起,可以从两个维度来对开源项目进行分类,一方面是编程语言,另一方面是应用领域. ...

  8. dubbo rest服务(消费者) java.lang.ClassNotFoundException: org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine 错误问题

    1.版本 dubbo 2.7.3 2.描述 java.lang.ClassNotFoundException: org.jboss.resteasy.client.jaxrs.engines.Apac ...

  9. MyISAM与InnoDB的索引实现区别

    一 MyISAM索引实现 1. 主键索引 MyISAM引擎使用B+树作为索引结果,叶节点的data域存放的是数据记录的地址.下图为MyISAM表的主索引,Col1为主键. 2. 辅助索引 在MyISA ...

  10. 工具系列 | Docker基本概念小结

    ▍什么是Docker? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容 ...