Files
cut-abstractions/tests/dev1/dataHandle/common/drawing/canvasUtil.ts
2025-07-22 18:22:31 +08:00

40 lines
940 B
TypeScript

import type { DrawTextOption } from './base'
// const canvas = new OffscreenCanvas(0, 0);
const canvas = document.createElement('canvas')
const canvasCtx = canvas.getContext('2d')
export function blobToDataURL(data: Blob): Promise<string>
{
return new Promise((resolve) =>
{
let reader = new FileReader()
reader.onload = (response) =>
{
resolve(response.target.result as string)
}
reader.readAsDataURL(data)
})
}
export function getStringWidth(
text: string,
width: number,
height: number,
option: DrawTextOption,
): number
{
canvasCtx.clearRect(
0,
0,
width,
height,
)
canvasCtx.textAlign = option.textAlign as CanvasTextAlign
canvasCtx.textBaseline = option.textBaseline as CanvasTextBaseline
canvasCtx.fillStyle = option.fillStyle
canvasCtx.font
= `${option.fontWeight} ${option.fontSize}px ${option.fontFamily}`
return canvasCtx.measureText(text).width
}