博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端-如何将网页保存为图片
阅读量:2053 次
发布时间:2019-04-28

本文共 956 字,大约阅读时间需要 3 分钟。

问题重现

前台生成一张复杂的海报,海报中包含外链图片资源

问题难点

  1. 网页由多个内容组成,前端不好将整个网页保存为图片。当然,可以使用canvas进行绘图()
  2. 网页中存在外链图片资源

解决方案

概述(笔者以Vue为例)

主要使用html2canvas,将页面转成canvas,从而转成图片。但使用html2canvas无法对外链图片资源进行良好的处理,当然网上有很多跨域的解决方案,但是,很不好意思的是,网上处理的跨域方案,都不太适用。所以,我采用了image-to-base64,将图片转成base64格式,然后使用html2canvas,保存图片。

综上所述,本文主要处理的问题是,将含有外链图片资源的网页保存为图片.

安装依赖包(使用npm)

  • 安装html2canvas
    npm install --save html2canvas
  • 安装image-to-base64
    npm i -S image-to-base64

图片转base64

import imageToBase64 from 'image-to-base64';// this.postImage = url;imageToBase64(this.postImage).then((baseUrl) => {
this.postImage = `data:image/jpg;base64,${
baseUrl}`;}).catch((error) => {
console.log(error);});

下载图片

  • html片段演示
海报内容
  • js片段演示
drawPostImage() {
html2canvas(this.$refs.post).then((canvas) => {
const oImg = new Image(); oImg.src = canvas.toDataURL(); // 导出图片 this.$refs.down.href = canvas.toDataURL(); this.$refs.down.download = '下载图片名称'; this.$refs.down.click(); });},

转载地址:http://afdlf.baihongyu.com/

你可能感兴趣的文章
【托业】【怪兽】TEST02
查看>>
【托业】【怪兽】TEST03
查看>>
【托业】【跨栏】TEST04
查看>>
【托业】【跨栏】TEST05
查看>>
【托业】【全真题库】TEST1-语法题+阅读题
查看>>
【托业】【全真题库】TEST3-语法题+阅读题
查看>>
【托业】【跨栏】TEST06
查看>>
【托业】320题-语法题(03-04)(03-37、04-11)
查看>>
【日语】五十音图-一个好用的日语五十音图记忆方法
查看>>
linux下使用crontab实现定时PHP计划任务失败的原因分析
查看>>
linux环境下安装redis扩展
查看>>
一个简单大方的赞后+1,踩后-1js动画效果
查看>>
新手学习编程的最佳方式
查看>>
从json_encode过来的的字符串被返回到html页面时的解析
查看>>
linux虚拟机局域网网卡配置
查看>>
用js判断是否为手机浏览,如果是手机浏览就跳转到手机站
查看>>
每天一个linux命令(26):用SecureCRT来上传和下载文件(转载自竹子)
查看>>
定时启动计划任务(转载自网络)
查看>>
Javascript的RegExp对象(转载自网络)
查看>>
rwx对于文件和目录的意义
查看>>