是否有可能将javascript脚本的输出渲染为jpeg而不是网页?

Is it possible to render the output of a javascript script as a jpeg instead of a web page?

本文关键字:jpeg 网页 有可能 javascript 脚本 输出 是否      更新时间:2023-09-26

一个名叫Cameron Beccario的优秀程序员创建了一个网页- http://www.earth.nullschool.net-,该网页根据当前的天气模型绘制出全球风向量。我需要以某种方式在网站上以图像序列或MPEG-4的形式输出,但每帧需要是4096x2048像素。显然,截图是行不通的。我可以访问Github上的源代码,代码似乎是一组javascript库与Beccario先生自己编写的一个javascript对象"earth"交互(以及一些CSS等似乎与我的问题无关)。我的目标是把这张地图投射到一个六英尺的球形屏幕上(别问这个问题),我不能修改把平面地图转换成球形投影的软件。所以本质上,我需要把网页的内容以高分辨率投影到一个大屏幕上。

我试过了(没有成功):

  • 浏览源代码并尝试插入一个脚本以将javascript的输出重定向到图像文件中。根据我更有知识的同事的说法,这是行不通的,因为一个名为d3.js的库正在进行实际渲染,它并不像"javascript的输出变成d3的输入,我写了一个简单的脚本来将该输入放入jpeg文件中"那么简单。
  • 各种截图软件。
  • 寻找一个可以接受Javascript输入并在网页上下文之外处理它的库。我不确定这是否会工作,即使我找到一个,在任何情况下,我还没有。

我想知道的:

  • 有一个库,可以取代d3在这段代码,并渲染javascript作为一个高分辨率的图像?
  • 我的一个同事建议"在浏览器中包装地图"。他没有机会解释他的意思,有人知道这是否会是一个有效的方式来投影一个详细的视频或图像序列吗?
  • 有没有人知道其他的方法来做到这一点?

提前感谢您的至理名言。

我原本打算推荐wkhtmltopdf,它可以直接从支持JS的站点生成图像,并可以指定设备设置(包括大屏幕)。然而,我不认为这将工作为您的目的,因为图像源是不断变化的。我真的认为你最好的办法是找到一个类似的工具,可以用来从网站上创建视频。

除此之外,有一种迂回的方法可能会让你得到你想要的。使用免费的虚拟机,您可以设置一个具有高分辨率屏幕(例如4096x2048)的虚拟机,然后使用它来进行mp4的屏幕捕获。