mirror of
https://github.com/027xiguapi/code-box.git
synced 2026-04-28 23:32:15 +00:00
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import dayjs from "dayjs"
|
|
import { saveAs } from "file-saver"
|
|
|
|
export default function DrawImages(images, filename) {
|
|
if (images.length === 0) {
|
|
console.error("No images captured.")
|
|
return
|
|
}
|
|
|
|
const canvas = document.createElement("canvas")
|
|
const context = canvas.getContext("2d")
|
|
const firstImage = new Image()
|
|
firstImage.onload = () => {
|
|
canvas.width = firstImage.width
|
|
canvas.height = images.length * firstImage.height
|
|
|
|
let imagesLoaded = 0
|
|
|
|
const drawImageOnCanvas = (image, index) => {
|
|
context.drawImage(image, 0, index * firstImage.height)
|
|
imagesLoaded++
|
|
|
|
if (imagesLoaded === images.length) {
|
|
filename = filename || "CodeBox-page"
|
|
canvas.toBlob(function (blob) {
|
|
saveAs(
|
|
blob,
|
|
`${filename}-${dayjs().format("YYYY-MM-DD HH:mm:ss")}.png`
|
|
)
|
|
})
|
|
}
|
|
}
|
|
|
|
images.forEach((dataUrl, index) => {
|
|
const image = new Image()
|
|
image.onload = () => drawImageOnCanvas(image, index)
|
|
image.src = dataUrl
|
|
})
|
|
}
|
|
|
|
firstImage.src = images[0]
|
|
}
|