【发布时间】:2021-05-04 07:55:57
【问题描述】:
我在页面上有一张图片(我将其称为背景图片),并且我允许用户输入一些通过 CSS 定位在背景图片上的文本。此外,还有一些其他小图像会根据文本使用 css 自动定位在背景图像上。
我现在想将用户设置/创建的内容转换为实际可下载的图像,本质上是照片编辑术语中的“扁平化图层”。
理想情况下,我还希望以非常高分辨率进行此操作,因为原始背景图像以比人们在编辑时看到的格式更大、更高分辨率的格式存在。
我不确定执行此操作的最佳方法。我会使用 NodeJS 和 Lambdas。
我认为一个解决方案可能是让另一个页面存在完整尺寸的背景图像,并让 css 重新定位并完美调整所有内容的大小,并使用 puppeteer 或其他东西截取屏幕截图,尽管我不知道这是否会丢失以某种方式原始图像的质量?
或者我是否为背景正确调整了叠加的文本和图像的大小,并对它们中的每一个进行截图,以某种方式添加透明度,然后以某种方式合并图片?
有没有我遗漏的更简单的方法或一些可以提供帮助的包?
【问题讨论】:
-
你有没有想过在屏幕外有一个元素(而不是另一个页面),带有完整尺寸的图像和其他东西(适当放大)并在元素上使用类似 html2canvas 的东西?
-
实际上,由于您可以完全控制最终图像中想要的内容,您也许可以自己将其全部写入画布。
标签: javascript html css node.js aws-lambda