更新图片解析

This commit is contained in:
2025-07-17 17:29:41 +08:00
parent 6367754737
commit b470f5946b
7 changed files with 507 additions and 172 deletions

52
src/utils/ocrUtils.js Normal file
View File

@ -0,0 +1,52 @@
// utils文件夹下创建 ocrUtils.js
export function drawBox(points, imgElement, canvasOutput) {
canvasOutput.width = imgElement.width
canvasOutput.height = imgElement.height
const ratio = imgElement.naturalHeight / imgElement.height
const ctx = canvasOutput.getContext('2d')
ctx.drawImage(imgElement, 0, 0, canvasOutput.width, canvasOutput.height)
points.forEach((point) => {
// 开始一个新的绘制路径
ctx.beginPath()
// 设置线条颜色为红色
ctx.strokeStyle = 'red'
// 设置路径起点坐标
ctx.moveTo(point[0][0] / ratio, point[0][1] / ratio)
ctx.lineTo(point[1][0] / ratio, point[1][1] / ratio)
ctx.lineTo(point[2][0] / ratio, point[2][1] / ratio)
ctx.lineTo(point[3][0] / ratio, point[3][1] / ratio)
ctx.closePath()
ctx.stroke()
})
}
export function drawText(text, points, imgElement, canvasOutput) {
canvasOutput.width = imgElement.width
canvasOutput.height = imgElement.height
const ratio = imgElement.naturalHeight / imgElement.height
const ctx = canvasOutput.getContext('2d')
points.forEach((point, index) => {
// 开始一个新的绘制路径
ctx.beginPath()
// 设置线条颜色为红色
ctx.strokeStyle = 'red'
// 设置路径起点坐标
ctx.moveTo(point[0][0] / ratio, point[0][1] / ratio)
ctx.lineTo(point[1][0] / ratio, point[1][1] / ratio)
ctx.lineTo(point[2][0] / ratio, point[2][1] / ratio)
ctx.lineTo(point[3][0] / ratio, point[3][1] / ratio)
ctx.closePath()
ctx.stroke()
ctx.font = '30px 黑体'
ctx.fillText(
text[index],
point[3][0] / ratio,
point[3][1] / ratio,
point[1][0] / ratio - point[0][0] / ratio
)
})
}