像 PhantomJS 这样的无头浏览器如何截屏?

How does headless browsers like PhantomJS take a screenshot?

我很好奇,找不到google的答案。像 phantomjs 这样的无头浏览器实际上是如何截屏的?由于浏览器是无头的,它如何呈现精确的网页呈现?

here 所述,PhantomJS 使用 WebKit 渲染引擎,如 Chrome、Safari、Opera 和许多其他网络浏览器。

简单来说,这样的渲染引擎将HTML、CSS、图像和其他资源作为输入,并从中计算图形表示。 浏览器获取该表示并在屏幕上显示给用户,而 PhantomJS 直接将其写入图像文件。 换句话说,相同的过程在幕后进行,只是输出目标不同。