需求

今天接到一个新需求,需要在手机上实现对某张定位实现的自定义图片来生成一个邀请函,然后分享。 这个邀请函是必须是一张图片,由于后端图形拼接太麻烦,于是这个锅就到了前端。而且项目要求比较急,没有时间去研究canvas的图形拼接,就想到了之前做过的网页截图

实现

实现这个方法基于两个库,html2canvas和canvas2img

首先引入这两个库,然后使用html2canvas来对在页面加载完成之后的内容生成canvas

html2canvas($('#model'), {

logging: false,

useCORS: false,

proxy: false,

onrendered: function (canvas) {

// canvas 就是绘制的canvas是对象

// var url = canvas.toDataURL();

// $('#newImg').attr('src', url);

// 使用canvas2image将canvas转化为图片,直接返回一个img节点

var u = Canvas2Image.convertToPNG(canvas, width, height);

}

});

实现截图之后发现两个问题:

html2canvas截取的是实际尺寸的图片,在手机的高分辨率的情况下,分享出去的图片非常的虚

html2canvas无法截取跨域的资源,比如微信头像

解决问题:

1.html2canvas截取的是实际尺寸的图片,在手机的高分辨率的情况下,分享出去的图片非常的虚

时间紧任务急,是时候呼叫万能的bing了(百度坑爹)

感谢这位大神提供的解决方案

注意:在这个解决方案下,外层元素不能使用百分比,会导致不正常缩放使得文字错位的。

2.html2canvas无法截取跨域的资源,比如微信头像

跨域无解,交给后端转base64啦

用原生js和html5进行网页截图,使用JS实现网页截图并保存相关推荐

  1. js打印html5,控制台打印文字效果js插件-typed.js

    typed.js是一款模拟控制台打印文字效果的js插件.typed.js可以自由的控制要打印的文字,以及打印的速度等,可以制作出逼真的打印文字效果. 安装 可以通过bower来安装typed.js插件 ...

  2. 打砖块小游戏php程序,利用原生js实现html5打砖块小游戏(代码示例)

    本篇文章给大家通过代码示例介绍一下利用原生js实现html5打砖块小游戏的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 前言 PS:本次项目中使用了大量 es6 语法,故对于 ...

  3. 网页设计作业成品 HTML+CSS+JS大作业——汽车保险销售综合商城(44页) HTML5网页设计成品_学生DW静态网页设计_web课程设计网页制作

    HTML+CSS+JS大作业--汽车保险销售综合商城(44页) HTML5网页设计成品_学生DW静态网页设计_web课程设计网页制作 文章目录 HTML+CSS+JS大作业--汽车保险销售综合商城(4 ...

  4. HTML5+CSS+JS期末大作业:网上书店网页设计(12页) 学生DW网页设计作业成品 web课程设计网页规划与设计 web网页设计与开发

    HTML5期末大作业:网上书店网页设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人. ...

  5. HTML+CSS+JS网页设计期末课程大作业 :音乐在线网站设计——音乐在线听平台网站(26页) 网页设计成品DW静态网页Html5响应式css3

    HTML5期末大作业:音乐在线网站设计--音乐在线听平台网站(26页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页 ...

  6. HTML5期末大作业:体育运动足球网站设计——足球(10页) HTML+CSS+JavaScri大学生体育运动网页设计模板代码 校园足球网页作业成品 学校足球网页制作模板

    HTML5期末大作业:体育运动足球网站设计--足球(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题 ...

  7. html5录音功能代码,recorder.js 基于 HTML5 实现录音功能

    recorder.js 基于 HTML5 实现录音功能2020-06-23 01:49:56 recorder.js microphone基于HTML5的录音功能,输出格式为mp3文件. 前言 完全依 ...

  8. LayaAir引擎开发HTML5最简单教程(面向JS开发者)

    LayaAir引擎开发HTML5最简单教程(面向JS开发者) 一.总结 一句话总结:开发游戏还是得用游戏引擎来开发,其实很简单啦 切记:开发游戏还是得用游戏引擎来开发,其实很简单,引擎很多东西都帮你做 ...

  9. Waud.js – 使用HTML5降级处理的Web音频库

    Waud.js 是一个Web音频库,有一个HTML5音频降级处理方案. 它允许您利用Web音频API为你的Web应用程序控制音频功能.在不支持Web音频API的非现代浏览器使用HTML5音频降级方案. ...

  10. HTML5 Canvas JavaScript库 Fabric.js 使用经验

    首先,表明我的态度:采用 Flash 才是最优方案,不建议使用 HTML 5 的 Canvas 做一些生产/工业级的网页应用. Flash的优势一是浏览器支持好,二是代码成熟稳定.而HTML5 的 C ...

最新文章

  1. 【带你重拾Redis】Redis过期策略 和 内存淘汰策略(key回收)
  2. Debug 和 Release 编译方式
  3. adpcm 解码音量小_Oriolus 1795解码耳放评测:仅仅蓝牙还不够,我要的是“真无线”...
  4. Exynos4412裸机开发 —— 看门狗定时器
  5. VTK:模型用法实战
  6. 第三次学JAVA再学不好就吃翔(part47)--String类的构造方法
  7. Memcache安装 2
  8. crontab -e 报错(E518: Unknown option: foldenable)
  9. 【java】java ssh 远程执行命令 并且获取执行的结果
  10. 项目管理学习总结(16)——如何突破技术管理
  11. eclipse bookmark
  12. 6.高级Magento模型EAV
  13. hdu 5857 Median(模拟)
  14. oracle的报告,Oracle数据库(RAC)巡检报告
  15. 征途2s 服务器文件,征途2 部分服务器更新内容介绍!
  16. 趣商宝微信招生方案 ,线上招生难,十大绝招帮您搞定微信吸粉!
  17. 开源星空照片_如何拍摄星空的好照片
  18. 运行易语言必须放在c盘才能打开,易语言怎样写隐藏运行图片里的文件
  19. python之os模块操作文件与文件夹
  20. 华为AP固件升级方法 (适用 4051TN系列AP)

热门文章

  1. 服务器2012重装系统不删d盘,重装系统可不可以保留原来D盘上的文件?
  2. 学软件测试需要培训吗?
  3. 11 Java基础整合---从配置环境变量到完成学生管理系统
  4. RK3399 开发板(ARM Cortex-A72架构)
  5. cbow 与 skip-gram的比较
  6. C++中的头文件和源文件:如何写头文件
  7. win10任务栏透明及网速,cpu、内存占用显示
  8. i.MX6ULL Linux阿尔法开发板硬件与调试
  9. 生活质量衡量系统_【惊爆】!!何为电能质量,作为电气工程师你真的明白么?...
  10. Arduino的舵机与红外的结合