【发布时间】:2013-04-10 10:37:32
【问题描述】:
当页面加载(没有用户交互)时,我在几个重叠的画布上生成了一个图像,但这确实需要大约 3 秒才能完全绘制。我想展平这些画布,并将此图像转换为服务器上的 PNG,以用于缩略图预览。
展平到单个画布(使用 ctx.drawImage(other_canvas,0,0))然后 ctx.toDataUrl() 看起来正是我需要的。有没有办法在服务器端执行此操作不需要用户的浏览器?可能是某种命令行 javascript / canvas 解析器,它可以加载页面,等待画布完成渲染,然后注入一些 javascript 来展平,调用 toDataUrl,调整大小并保存结果图像。
渲染缩略图并将其发送回服务器的 AJAX 解决方案将不起作用,因为在第一个人查看页面之前我需要缩略图。它还需要快速(希望只比画布渲染时间稍长,3 秒)。我迫不及待想要像 browsershots 这样的外部服务。
我查看了 CutyCapt,但它呈现了整个网页,而不仅仅是画布(而且由于某种原因似乎也没有在我的画布上绘制所有内容)。
谢谢。
【问题讨论】:
标签: php javascript html canvas webpage-screenshot