Thank you for mentionig this. There are still some caveats I hope fix soon. And I working on a plugin system to allow user modify all aspects of the capture
Very cool! How does this work from a technical standpoint?
Do you have to implement a full HTML/CSS renderer in JS, or is there an official browser API to capture the elements as image data?
I'm using several functions to clone the DOM and insert it into an SVG <foreignObject>. This approach is now well supported across modern browsers, although <foreignObject> is still a rather primitive way to handle HTML and styles within SVG, which can sometimes lead to results that aren't fully precise in certain cases. To reduce the size, I created internal CSS classes to avoid repeating CSS properties, and I'm also using several caches to prevent re-cloning styles that have already been processed. There's still a long journey ahead, but I hope a plugin system will allow for more fine-grained control over all capture stages
Yes, I'm afraid it depends a lot on what elements you are capturing. But maybe with a plugin designed to perform a capture burst and collect them in an array, it would be possible to generate an animation as output.
Yes, the default capture output is a svg dataurl. But there many other export options. This lib was made as an internal tool for another project called Zumly that is zoomable engine and the svg format was the faster output I found. But then I realized that could be an independent tool like html2canvas
[+] [-] allan_s|9 months ago|reply
[+] [-] jmm77|9 months ago|reply
[+] [-] arecsu|9 months ago|reply
[+] [-] djxfade|9 months ago|reply
[+] [-] jmm77|9 months ago|reply
[+] [-] XCSme|9 months ago|reply
If a render is 13ms (under 16ms), it means it could, in theory, also record page video capture at 60fps or 30fps?
[+] [-] jmm77|9 months ago|reply
[+] [-] kreetx|9 months ago|reply
[+] [-] jmm77|9 months ago|reply
[+] [-] JimDabell|9 months ago|reply
[+] [-] ajyotirmay|9 months ago|reply
[+] [-] jmm77|9 months ago|reply