Gathering detailed insights and metrics for @snappify/modern-screenshot
Gathering detailed insights and metrics for @snappify/modern-screenshot
Gathering detailed insights and metrics for @snappify/modern-screenshot
Gathering detailed insights and metrics for @snappify/modern-screenshot
📸 Quickly generate image from DOM node using HTML5 canvas and SVG.
npm install @snappify/modern-screenshot
Typescript
Module System
Node Version
NPM Version
75.1
Supply Chain
99
Quality
78.7
Maintenance
100
Vulnerability
100
License
TypeScript (97.11%)
CSS (1.71%)
HTML (0.92%)
JavaScript (0.26%)
Love this project? Help keep it running — sponsor us today! 🚀
Total Downloads
122
Last Day
1
Last Week
3
Last Month
19
Last Year
122
MIT License
1,157 Stars
340 Commits
57 Forks
5 Watchers
1 Branches
8 Contributors
Updated on Feb 18, 2025
Minified
Minified + Gzipped
Latest Version
0.0.1
Package Id
@snappify/modern-screenshot@0.0.1
Unpacked Size
178.88 kB
Size
46.63 kB
File Count
12
NPM Version
10.1.0
Node Version
20.9.0
Published on
Jan 07, 2025
Cumulative downloads
Total Downloads
Last Day
0%
1
Compared to previous day
Last Week
-50%
3
Compared to previous week
Last Month
-81.6%
19
Compared to previous month
Last Year
0%
122
Compared to previous year
使用 HTML5 canvas 和 SVG 从 DOM 节点快速生成图像
Fork from html-to-image
English | 简体中文
1npm i modern-screenshot
1import { domToPng } from 'modern-screenshot' 2 3domToPng(document.querySelector('#app')).then(dataUrl => { 4 const link = document.createElement('a') 5 link.download = 'screenshot.png' 6 link.href = dataUrl 7 link.click() 8})
1<script src="https://unpkg.com/modern-screenshot"></script> 2<script> 3 modernScreenshot.domToPng(document.querySelector('body')).then(dataUrl => { 4 const link = document.createElement('a') 5 link.download = 'screenshot.png' 6 link.href = dataUrl 7 link.click() 8 }) 9</script>
⚠️ 由于 CORS 部分嵌入将失败
1const script = document.createElement('script') 2script.src = "https://unpkg.com/modern-screenshot" 3document.getElementsByTagName('head')[0].appendChild(script) 4 5script.onload = () => { 6 modernScreenshot 7 .domToImage(document.querySelector('body'), { 8 debug: true, 9 progress: (current, total) => { 10 console.log(`${ current }/${ total }`) 11 } 12 }) 13 .then(img => { 14 const width = 600 15 const height = img.height * (width / img.width) 16 console.log('%c ', [ 17 `padding: 0 ${ width / 2 }px;`, 18 `line-height: ${ height }px;`, 19 `background-image: url('${ img.src }');`, 20 `background-size: 100% 100%;`, 21 ].join('')) 22 }) 23}
method(node: Node, options?: Options)
DOM 转 dataURL
DOM 转 data
DOM 转 HTMLElement
请查看 options.ts
通过重用上下文和 web worker,每秒快速截图
1// use vite 2import workerUrl from 'modern-screenshot/worker?url' 3import { createContext, destroyContext, domToPng } from 'modern-screenshot' 4 5async function screenshotsPerSecond() { 6 const context = await createContext(document.querySelector('#app'), { 7 workerUrl, 8 workerNumber: 1, 9 }) 10 for (let i = 0; i < 10; i++) { 11 domToPng(context).then(dataUrl => { 12 const link = document.createElement('a') 13 link.download = `screenshot-${ i + 1 }.png` 14 link.href = dataUrl 15 link.click() 16 if (i + 1 === 10) { 17 destroyContext(context) 18 } 19 }) 20 await new Promise(resolve => setTimeout(resolve, 1000)) 21 } 22} 23 24screenshotsPerSecond()
请查看 context.ts
无法克隆 css 计数器
content: counter(step);
No vulnerabilities found.
No security vulnerabilities found.