vue3中,使用html2canvas截图包含视频、图片、文字的区域

这篇具有很好参考价值的文章主要介绍了vue3中,使用html2canvas截图包含视频、图片、文字的区域。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:将页面中指定区域进行截图,区域中包含了图片、文字、视频。

第一步,先安装

npm install html2canvas

第二步,在页面引入:

import html2canvas from 'html2canvas';

第三步,页面使用:
1)html部分:

<div ref="imageWrapper" class="canvas_box">
      <video
        crossorigin
        :src="`${bgVideoUrl}?_=${Date.now()}`"
        autoplay
        muted
        loop
      ></video>
      <img
        crossorigin="anonymous"
        :src="`${bgSrc}?_=${Date.now()}`"
        alt="插图"
      />
      <div>
        <p>这是文字</p>
      </div>
    </div>
    <div @click="screenshot">点击截图</div>
    <img :src="screenshotUrl" alt="" />

2)js部分:

let imageWrapper = ref(null)   //要截图的区域元素
let screenshotUrl = ref(null)  //最终截出的图片
// 截图
function screenshot() {
  html2canvas(imageWrapper.value, {
    useCORS: true,// 使用跨域
  }).then((canvas) => {
    const imageDataURL = canvas.toDataURL('image/png');
    screenshotUrl.value = imageDataURL
    console.log(screenshotUrl.value)
  })
}

注意

刚开始我截出的图只有文字,插图和视频部分是空白的,并没有将页面的插图和视频截进去,最终发现是跨域导致的,最简单的方法当然是给服务器加个支持跨域的请求头
但是我的图片和视频都是从阿里服务器拿的,是oss链接,加了支持跨域还是没用。
最终试了一下,给视频和图片全部加上crossorigin,并且在访问的地址后面加上随机参数,防止浏览器缓存图片,然后给html2canvas函数加上useCORS: true,使用跨越,这样截出来的图片就好啦~
vue3中,使用html2canvas截图包含视频、图片、文字的区域,vue.js,javascript,html文章来源地址https://www.toymoban.com/news/detail-736388.html

到了这里,关于vue3中,使用html2canvas截图包含视频、图片、文字的区域的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • html2canvas截图模糊问题

    最近项目中使用的html2canvas插件打印报表时,发现出现报表模糊的问题,而实际上是插件生成的图片中的像素发生了偏移。 后来查阅html2canvas源码中,发现了以下参数: 参数名称 默认值 描述 scale 1 按比例增加分辨率(2=双倍) dpi 96 将分辨率提高到特定的DPI(每英寸点数)

    2024年01月17日
    浏览(59)
  • html2canvas截图生产海报图片

    图片地址后添加?time=${new Date().valueOf()},不然会报图片跨域报错 原因:这是因为你img是在缓存数据中读取的 并没有访问远程这个图片的时候没有携带请求头。 确保你的图片服务器支持CORS访问,也就是会返回Access-Control-Allow-Origin等响应头;

    2024年02月02日
    浏览(52)
  • 前端html2canvas生成截图【实现步骤与踩坑】

    需求 :点击下载可以导出组件的 截图 及数据信息文件 分析 :前端生成组件截图,带着其他参数传给后端,拿到excel文件并下载。关键在于生成组件的截图,这里通过 html2canvas 插件来实现。 1.下载插件 npm install html2canvas 2.引入 3.通过ref拿到要下载组件的dom元素 4.通过html2ca

    2024年04月11日
    浏览(50)
  • uniapp APP端使用html2canvas截图分享小程序卡片图片模糊、跨域等问题解决

    项目场景:uniapp  APP端,分享小程序到微信好友,使用html2canvas截取当前页面做卡片封面图。仅是需要展示部分内容用作卡片封面就可以,不强制需要全屏截图。 问题1、部分页面截取到的图片分享到微信后卡片图片模糊。 问题2、截图时报错:Failed to execute \\\'toDataURL\\\' on \\\'HTMLC

    2024年02月05日
    浏览(85)
  • vue使用html2canvas优化---节点过滤

    当你使用html2canvas对某个节点进行截图时,项目小dom节点少那还没什么性能问题,如果是个大项目,有成百上千个dom节点,那将是非常头疼的事情(产品经理:小张啊,你这个截图功能为什么需要这个长的时间,这让客户怎么用,重新改。小张:********...)。不多bb了,直接开

    2024年02月12日
    浏览(51)
  • 前端html2canvas和dom-to-image实现截图功能

    目录 需求 历劫过程 截图知识点 html2canvas 文档地址 封装 使用教程  dom-to-image-more 文档地址 封装 使用教程 解决跨域问题 以下是我花了大把时间,薅秃头得出来的最终结果, dom-to-image-more截图时间快到可以让复杂的页面仅需2-3S就能完成截图,内容有点多,请保持耐心慢慢看

    2024年02月15日
    浏览(62)
  • vue中使用html2canvas+jsPDF实现pdf的导出

    html2canvas依赖 jspdf依赖 pdf导出 以导出横向,A4大小的pdf为例 规律:1. html2canvas 中,在保持jsPDF中的宽高不变的情况下,设置html2canvas中的 width 和 height 值越小,导出的pdf越显示不全(会被放大,只能看到局部),反之值越大,导出的pdf越显示完整(值也不能过大,过大在pdf中就显

    2024年02月12日
    浏览(47)
  • (vue)Vue项目中使用jsPDF和html2canvas生成PDF

    效果: 1.:安装jsPDF和html2canvas 2.在需要生成PDF文档的组件中引入jsPDF和html2canvas 解决参考: 1.https://www.jianshu.com/p/31d37bef539b 2.https://www.php.cn/faq/556634.html 3.https://blog.csdn.net/m0_54967474/article/details/123820384

    2024年02月10日
    浏览(54)
  • Vue使用html2canvas将DOM节点生成对应的PDF

    要通过Vue使用html2canvas将DOM节点生成对应的PDF,您需要安装html2canvas和jspdf这两个库。html2canvas用于将DOM节点转换为Canvas,而jspdf用于将Canvas转换为PDF。以下是一个简单的示例代码,展示了如何使用html2canvas和jspdf生成PDF文件: 首先,安装html2canvas和jspdf依赖: 然后,在Vue组件中

    2024年02月11日
    浏览(58)
  • html2canvas使用文档

    Install NPM Install Yarn 以 vue 举例,这样写起来比较方便 如果想要将图片导出,可以这样写 名称 默认值 描述 allowTaint false 是否允许跨源图像污染画布 backgroundColor #ffffff 画布背景色(如果在DOM中未指定),为透明设置null canvas null 用作绘图基础的现有画布元素 foreignObjectRendering

    2024年03月28日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包