今日无事勾栏听曲 2024-07-30 16:58 采纳率: 50%
浏览 12

html2canvas 截图生成base64 图片,

问题:html2canvas 截图生成base64 图片,iframe 无法截图

问题描述:地图部分是一个 iframe 通过html2canvas 截图发现 地图部分为白色。
尝试 将地图部分和非地图部分 分别截图后再合并成一张图片。但是有层级关系。如果地图沾满全屏的话 ,组件就会被遮挡

img

合并代码。 是否还有其它方法 或者其它的插件可以解决这个问题吗


function mergeImage(base1, base2, pageSize, iframePostions) {
  return new Promise((resolve, reject) => {
    const canvas = document.createElement("canvas")
    canvas.width = pageSize.width
    canvas.height = pageSize.height
    const ctx: any = canvas.getContext("2d")

    const image = new Image() // MAP图片
    image.crossOrigin = "Anonymous" // 支持跨域图片
    image.onload = () => {
      ctx.drawImage(image, 0, 0, pageSize.width, pageSize.height)

      const image2 = new Image() // div图片
      image2.crossOrigin = "Anonymous" // 支持跨域图片
      image2.onload = () => {
        ctx.drawImage(image2, iframePostions.left, iframePostions.top, iframePostions.width, iframePostions.height)

        // 合并后的图片
        const base64 = canvas.toDataURL("image/png")
        resolve(base64)
      }
      image2.src = base2
    }
    image.src = base1
  })
}
  • 写回答

1条回答 默认 最新

  • 前端Ckk 2024-07-30 17:43
    关注

    http://t.csdnimg.cn/aySYa
    看一下这个文章

    评论

报告相同问题?

问题事件

  • 创建了问题 7月30日

悬赏问题

  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题