当前位置: 首页 > news >正文

网站开发难不难jsp网站建设代码

网站开发难不难,jsp网站建设代码,管局审核网站名称,网站代理软件文章目录 ⭐前言⭐选择html2canvas实现网页截图💖 截图 ⭐图片url截图显示不出来问题💖 解决 ⭐最终效果💖 定义海报 ⭐总结⭐结束 ⭐前言 大家好,我是yma16,本文分享关于 前端vue3——html2canvas给网站截图生成宣传…

文章目录

    • ⭐前言
    • ⭐选择html2canvas实现网页截图
      • 💖 截图
    • ⭐图片url截图显示不出来问题
      • 💖 解决
    • ⭐最终效果
      • 💖 定义海报
    • ⭐总结
    • ⭐结束

yma16-logo

⭐前言

大家好,我是yma16,本文分享关于 前端vue3——html2canvas给网站截图生成宣传海报。
vue3系列相关文章:
vue3 + fastapi 实现选择目录所有文件自定义上传到服务器
前端vue2、vue3去掉url路由“ # ”号——nginx配置
csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板
认识vite_vue3 初始化项目到打包
python_selenuim获取csdn新星赛道选手所在城市用echarts地图显示
让大模型分析csdn文章质量 —— 提取csdn博客评论在文心一言分析评论区内容
canvas

JavaScript Canvas is a web technology that allows you to dynamically draw and manipulate graphics on a webpage using JavaScript. With Canvas, you can create complex graphics, animations, and interactive applications that respond to user input. It is a 2D drawing API that provides a set of methods and properties to create and manipulate graphics, images, and animations.

JavaScript Canvas 是一种 Web 技术,允许您使用 JavaScript 在网页上动态绘制和操作图形。使用 Canvas,您可以创建复杂的图形、动画和交互式应用程序,以响应用户输入。它是一个 2D 绘图 API,它提供了一组用于创建和操作图形、图像和动画的方法和属性。

前端截图

前端截图通常使用浏览器提供的 API,例如,利用 HTML5 的 canvas 元素,使用 JavaScript
绘制网页内容,并将结果输出到图片;或者使用浏览器提供的 window 和 document
对象,将内容转换成图片。另外,也可以使用第三方库,例如,html2canvas 和
Puppeter,它们将网页转换为图片并提供了更多功能和控制选项。无论是使用浏览器自带的 API
还是第三方库,它们都需要运行在具有一定的运算和内存资源的计算机上,并且相关的代码需要在浏览器环境中执行。

⭐选择html2canvas实现网页截图

npm安装——html2canvas

$ npm install html2canvas

安装成功!
在inscode环境运行
install-p
使用示例: html2canvas(element, options)
返回html的canvas对象

html2canvas(document.body).then(function(canvas) {document.body.appendChild(canvas);
});

💖 截图

js实现html2canvas截图

import html2canvas from 'html2canvas';
/** 下载图片 */
const downloadBase64 = (content,fileName) => {const base64ToBlob = function (code) {let parts = code.split(';base64,');let contentType = parts[0].split(':')[1];let raw = window.atob(parts[1]);let rawLength = raw.length;let uInt8Array = new Uint8Array(rawLength);for (let i = 0; i < rawLength; ++i) {uInt8Array[i] = raw.charCodeAt(i);}return new Blob([uInt8Array], {type: contentType});};let aLink = document.createElement('a');let blob = base64ToBlob(content);aLink.download = fileName + '.png';aLink.href = URL.createObjectURL(blob);aLink.click();
};// 截图
const shotAction=()=>{html2canvas(document.getElementById('render-id')).then(function(canvas) {console.log('canvas',canvas)const base64 = canvas.toDataURL().replace(/^data:image\/(png|jpg);base64,/, '');const base64img = `data:image/png;base64,${base64}`;downloadBase64(base64img, state.current);// document.body.appendChild(canvas);
});
}

vue3评论分析页面
commit

生成截图效果评论
shot

⭐图片url截图显示不出来问题

html2canvas默认能加载图片。
特殊情况由于图片img使用url,导致html2canvas截图的内容显示不出来

💖 解决

解决方案:

  1. url转为base64
  2. 配置html2canvas参数useCORS,proxy
    配置文档:https://html2canvas.cn/html2canvas-configuration.html

添加参数

// 截图
const shotAction=()=>{html2canvas(document.getElementById('render-id'),{useCORS:true,proxy:'inscode.csdn.net'}).then(function(canvas) {console.log('canvas',canvas)const base64 = canvas.toDataURL().replace(/^data:image\/(png|jpg);base64,/, '');const base64img = `data:image/png;base64,${base64}`;downloadBase64(base64img, state.current);// document.body.appendChild(canvas);
});
}

vue3 html页面
city-game

截图效果如下
截图结果
inscode项目

⭐最终效果

csdn 查分截图
search-grade

csdn 赛道可视化截图
game

csdn 分析评论截图
commit

💖 定义海报

封装截图方法

/** 下载图片 */
const downloadBase64 = (content:any,fileName:any) => {const base64ToBlob = function (code:any) {let parts = code.split(';base64,');let contentType = parts[0].split(':')[1];let raw = window.atob(parts[1]);let rawLength = raw.length;let uInt8Array = new Uint8Array(rawLength);for (let i = 0; i < rawLength; ++i) {uInt8Array[i] = raw.charCodeAt(i);}return new Blob([uInt8Array], {type: contentType});};let aLink = document.createElement('a');let blob = base64ToBlob(content);aLink.download = fileName + '.png';aLink.href = URL.createObjectURL(blob);aLink.click();
};// 截图
const shotAction=(dom:any)=>{console.log('dom',dom)html2canvas(dom,{allowTaint:true,useCORS:true,proxy:'localhost',scale:1}).then(function(canvas) {console.log('canvas',canvas)const base64 = canvas.toDataURL().replace(/^data:image\/(png|jpg);base64,/, '');const base64img = `data:image/png;base64,${base64}`;downloadBase64(base64img, '邮件');// document.body.appendChild(canvas);});
}

使用grapesjs-mjml定制网站海报
react-mjml:https://yongma16.xyz/react-mjml/
将截图放入html拖拽设计从上而下排版的海报
shot-p
截图选取iframe生成html海报结果如下
iframe

⭐总结

htmlcanvas使用时不能传递jsdom,正确的用法是传递浏览器渲染的真实dom。

  • 图片加载不出来可以使用配置参数useCORS,proxy,allowTaint
  • 图片模糊可以配置 scale

⭐结束

本文分享到这结束,如有错误或者不足之处欢迎指出!
sence

👍 点赞,是我创作的动力!
⭐️ 收藏,是我努力的方向!
✏️ 评论,是我进步的财富!
💖 感谢你的阅读!

http://www.yayakq.cn/news/761240/

相关文章:

  • 消防网站模板c 网站开发教程
  • 中山网站建设网站网站的js效果
  • 专门做化妆品平台的网站wordpress 上传图片 出错
  • 建设部网站中煤三建辽宁省建设信息网
  • 移动网站转码辽宁工程招投标信息网
  • 中山台州网站建设推广微信营销策略
  • 商城类网站模板做电子商务平台网站需要多少钱
  • 网站如何改字体58招聘网最新招聘信息
  • 建设销售型网站wordpress插件不生效
  • 湛江网站建设费用网站系统的建设与管理
  • 域名 网站名称肥城网站建设广州外地车牌
  • 网站制作的英文临沂google推广
  • 网站入口设计网站浏览排名
  • 南上海网站建设WordPress生成电商小程序
  • 外贸建站模板下载苏州网站建设老板
  • 先做网站还是先解析网站开发任务需求书
  • 做网站大概要多少建设企业网站进去无法显示
  • 赣州模板建站开发虚拟机wordpress插件
  • 建设配资网站有要求吗2016年网站推广方法
  • 建设银行etc的网站是哪个好一个营业执照可以做两个网站
  • 备案网站建设方案书范文网站登录不上怎么回事
  • 做网站怎么赚钱 知乎重庆网站建设找重庆万为
  • 地图设计网站招聘室内设计
  • 个人网站建设课程介绍保障房建设网站首页
  • 齐博网站模板上海icp新增网站
  • 公司网站建设设计公司排名哪个网站上网好
  • 做网站需要学的语言和软件广告建设网站建设
  • 外贸网站哪家好个人网页模板关于爱国
  • 网站分几种类型freeserver 免费服务器申请
  • 高密做网站哪家好价位自动发卡网和卡密兑换网站开发视频教程