MCPcopy Create free account
hub / github.com/experdot/pointer / captureElementToCanvas

Function captureElementToCanvas

src/renderer/src/utils/exporter.ts:6–40  ·  view source on GitHub ↗
(
  element: HTMLElement,
  paddingV: number = 0,
  paddingH: number = 0
)

Source from the content-addressed store, hash-verified

4 * 将 DOM 元素转换为 canvas
5 */
6export async function captureElementToCanvas(
7 element: HTMLElement,
8 paddingV: number = 0,
9 paddingH: number = 0
10): Promise<HTMLCanvasElement> {
11 const canvas = await html2canvas(element, {
12 backgroundColor: '#ffffff',
13 scale: 2,
14 logging: false,
15 useCORS: true
16 })
17
18 if (paddingV === 0 && paddingH === 0) {
19 return canvas
20 }
21
22 // Create a new canvas with padding
23 const paddedCanvas = document.createElement('canvas')
24 paddedCanvas.width = canvas.width + 2 * paddingH
25 paddedCanvas.height = canvas.height + 2 * paddingV
26 const ctx = paddedCanvas.getContext('2d')
27
28 if (!ctx) {
29 throw new Error('Failed to get 2D context')
30 }
31
32 // Fill the background
33 ctx.fillStyle = '#ffffff'
34 ctx.fillRect(0, 0, paddedCanvas.width, paddedCanvas.height)
35
36 // Draw the original canvas with padding
37 ctx.drawImage(canvas, paddingH, paddingV)
38
39 return paddedCanvas
40}
41
42/**
43 * 将 canvas 转换为 blob

Callers 3

generateImageFunction · 0.90
useMessageImageExportFunction · 0.90
generateImageFunction · 0.90

Calls 1

drawImageMethod · 0.80

Tested by

no test coverage detected