需求: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. H3C PPP MP配置示例三

  2. Python--day48--今日内容

  3. CentOS7在防火墙与端口上的操作

    https://jingyan.baidu.com/article/cdddd41cb3bf6c53cb00e1ac.html CentOS7在安装软件包或类库的时候,常常会因为防火墙的拦截和端口未开 ...

  4. H5 网络状态接口

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. H3C FTP配置示例

  6. H3C 无类域间路由斜线表示法

  7. 改善Azure App Service托管应用程序性能的几个技巧

    本文介绍了几个技巧,这些技巧可以改善Azure App Service托管应用程序的性能.其中一些技巧是你现在就可以进行的配置变更, 而其他技巧则可能需要对应用程序进行一些重新设计和重构. 开发者都希 ...

  8. git 安装及基本配置

    git 基本上来说是开发者必备工具了,在服务器里没有 git 实在不太能说得过去.何况,没有 git 的话,面向github编程 从何说起,如同一个程序员断了左膀右臂. 你对流程熟悉后,只需要一分钟便 ...

  9. 对input输入框日期显示格式化

    先:导入fmt标签 在对input框进行属性设置 <input type="text" name="createtime"  value="&l ...

  10. The Preliminary Contest for ICPC Asia Nanjing 2019ICPC南京网络赛

    B.super_log (欧拉降幂) •题意 定一个一个运算log*,迭代表达式为 给定一个a,b计算直到迭代结果>=b时,最小的x,输出对m取余后的值 •思路 $log*_{a}(1)=1+l ...