有没有办法保存透明背景的网页截图?

平面设计 网站设计 出口
2022-02-09 00:18:21

我直接在 HTML/CSS 中对我的网页进行了原型设计,使用自定义字体作为标题文本。

然而,字体渲染在 Windows 上非常不同,所以我想将网页的某些部分导出为位图,但背景是透明的。

有没有办法做到这一点?

4个回答

刚刚通过 Safari 找到了一个简单的方法。

右键单击元素,检查元素,然后在检查器中右键单击要导出的元素节点并选择捕获屏幕截图。这对我来说保持透明度。Safari 版本 13.1 (14609.1.20.111.8)

在此处输入图像描述

是的,如果您可以使用 macOS,您实际上可以这样做。一个名为Page Layers的方便的花花公子程序允许您导出网页的 PSD,然后您可以删除现有的背景图像或元素并随心所欲!

是的!您确实可以使用 Chromium 做到这一点!其中一种方法是将其与以下包装器puppeteer一起使用nodejs

const puppeteer = require('puppeteer');
const chromiumBinPath = '/usr/bin/chromium-browser';

(async () => {

  const browser = await puppeteer.launch({
    args: [
        '--no-sandbox',
        '--disable-setuid-sandbox',
        '--disable-dev-shm-usage',
        '--single-process',
        '--ignore-certificate-errors',
    ],
    //pipe: true,
    ignoreHTTPSErrors: true,
    headless: true,
    executablePath: chromiumBinPath,
  });
  const page = await browser.newPage();
  await page.goto('https://some-site.localhost/render-this-page/');
  await page.screenshot({
      path: './screenshot.png',
      omitBackground: true,
  });

  await browser.close();

})();

该选项omitBackground: true将屏幕截图保存到没有实心填充背景的图像文件中,因此它确实是透明的,甚至前景中元素的 alpha 透明度也被正确保留!

请注意,我使用外部 Chromium 二进制文件(Ubuntu 包chromium-browser)而不是使用 npm 包安装它。这种方法和上面使用的选项允许我在 WSL 1(Windows 上的 Bash)中运行它,Ubuntu 发行版。

https://github.com/strarsis/screenshot-with-transparent-background

有一个在线工具可以将网页中的所有图层导出为 PSD 文件或仅导出为一组用 zip 打包的 PNG 文件。它支持阴影和不透明度。所有导出的图层都具有透明背景(Alpha 通道)。给你https://www.page2psd.com