微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 <div> 保存为图像:html-to-image 仅捕获 div 周围有透明空间

如何解决将 <div> 保存为图像:html-to-image 仅捕获 div 周围有透明空间

我在 Gatsby 中有一个页面,其中包含一个带有 div 的大 h1。我已经安装了 html-to-imagesave-html-as-image(内部使用前者),并分别对这两个库进行了尝试。 我正在尝试将蓝色 div + h1 转换为 png 图像。

代码如下:

import { saveAsPng,saveAsJpeg } from "save-html-as-image"

const IndexPage = () => {
  const convertToImage = id => {

    let node = document.getElementById(id)
    saveAsPng(node)

  }
  return (
    <Layout>
      <div>
        <div
          id="123"
          style={{ width: "600px",height: "900px",backgroundColor: "blue" }}
        >
          <h1>Hello World</h1>
        </div>
      </div>

      <button onClick={() => convertToImage("123")}>Download</button>
    </Layout>
  )
}
 
export default IndexPage

这是网站的截图:

enter image description here

但是,正在生成的图像看起来像这样(如果在 Mac OS 预览中打开)

enter image description here

所以它让我得到了正确的图像,但我不明白为什么它周围有这么多空间,这似乎是图像的一部分。我也试过不保存图片直接追加到DOM中,结果一样。它周围的空间似乎是透明的,但就在那里。

不确定我做错了什么?几个月前我有这个工作,现在刚刚打开这个项目,它有这个错误。实在想不通。

PS:如果有人能帮我把屏幕截图缩小一点,那就太好了

编辑:我只是在一个新的 create-react-app 中尝试了相同的代码,以确保它不是 gatsby 导致错误,并且它产生了相同的错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。