|
@@ -1,80 +1,13 @@
|
|
|
<template>
|
|
|
- <div class="demo-image__placeholder">
|
|
|
- <div class="block">
|
|
|
- <el-col :span="20">
|
|
|
- <el-row class="small-title">
|
|
|
- <h2>版面分析</h2>
|
|
|
- </el-row>
|
|
|
- <el-row style="color: gray; font-size: small;">
|
|
|
- <p>分析图片或pdf的内容并提取出其中的图片,表格等信息</p>
|
|
|
- </el-row>
|
|
|
- <el-row style="color: gray; font-size: small;">
|
|
|
- <h4>支持jpg, png, bmp, pdf格式</h4>
|
|
|
- </el-row>
|
|
|
- <div class="common-layout">
|
|
|
- <el-container>
|
|
|
- <el-input type="file" v-model="fileName" @change="uploadImg"></el-input>
|
|
|
- <el-button type="primary" @click="predict">Predict</el-button>
|
|
|
- </el-container>
|
|
|
- </div>
|
|
|
- <el-row v-show="!is_pdf">
|
|
|
- <!-- 用于展示图片 -->
|
|
|
- <img id="show-img" class="show-area" />
|
|
|
- <!-- 用于存放真实图片 -->
|
|
|
- <img id="raw-img" style="display: none" />
|
|
|
- </el-row>
|
|
|
- <div class="pdf-preview" v-show="is_pdf">
|
|
|
- <div class="pdf-wrap">
|
|
|
- <vue-pdf-embed :source="state.source" :style="scale" class="vue-pdf-embed" :page="state.pageNum" />
|
|
|
- </div>
|
|
|
- <div class="page-tool">
|
|
|
- <div class="page-tool-item" @click="prePage">上一页</div>
|
|
|
- <div class="page-tool-item" @click="nextPage">下一页</div>
|
|
|
- <div class="page-tool-item">{{ state.pageNum }}/{{ state.numPages }}</div>
|
|
|
- <div class="page-tool-item" @click="pageZoomOut">放大</div>
|
|
|
- <div class="page-tool-item" @click="pageZoomIn">缩小</div>
|
|
|
- </div>
|
|
|
- <div style="margin-top: 50px;">
|
|
|
- <el-row class="page-tool">
|
|
|
- <div class="common-layout">
|
|
|
- <el-container>
|
|
|
- <el-input type="number" v-model="pdf_page"></el-input>
|
|
|
- <el-button type="primary" @click="SetPdfPage" plain>页面跳转</el-button>
|
|
|
- </el-container>
|
|
|
- </div>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <canvas id="canvas" style="display: none;"></canvas>
|
|
|
- </el-col>
|
|
|
- </div>
|
|
|
- <div class="block">
|
|
|
- <el-col :span="20">
|
|
|
- <el-row class="small-title">
|
|
|
- <h2 style="margin-right: 100;">检测结果展示</h2>
|
|
|
- <el-button type="danger" @click="submitBug">提交bug</el-button>
|
|
|
- </el-row>
|
|
|
- <el-row style="color: gray; font-size: small;">
|
|
|
- <p></p>
|
|
|
- </el-row>
|
|
|
- <el-row style="color: gray; font-size: small;">
|
|
|
- <h4></h4>
|
|
|
- </el-row>
|
|
|
- <div>
|
|
|
- <h4></h4>
|
|
|
- <h4></h4>
|
|
|
- </div>
|
|
|
- <el-row v-loading="loading" class="small-title">
|
|
|
- <h4></h4>
|
|
|
- <h4></h4>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <img id="predict-img" class="show-area" />
|
|
|
- <section> 耗时:{{ predictTime }} ms</section>
|
|
|
- </el-row>
|
|
|
- </el-col>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12" class="place">
|
|
|
+ <el-row class="small-title">
|
|
|
+ <h2>版面分析(暂未实现)</h2>
|
|
|
+ </el-row>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" class="place">
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
@@ -119,7 +52,7 @@ function getPdfImage(index: number) {
|
|
|
loadingTask.promise.then((pdf: any) => {
|
|
|
state.numPages = pdf.numPages;
|
|
|
pdf.getPage(index).then((page: any) => {
|
|
|
- const viewport = page.getViewport({ scale: 1 })
|
|
|
+ const viewport = page.getViewport({ scale: 10.0 })
|
|
|
canvas.value.height = viewport.height;
|
|
|
canvas.value.width = viewport.width;
|
|
|
// 画布的dom大小, 设置移动端,宽度设置铺满整个屏幕
|
|
@@ -134,9 +67,9 @@ function getPdfImage(index: number) {
|
|
|
viewport,
|
|
|
});
|
|
|
canvas.value.toBlob(function (blob) {
|
|
|
- pdf_img.value = dataURLtoBlob(canvas.value.toDataURL())
|
|
|
+ pdf_img.value = dataURLtoBlob(canvas.value.toDataURL('images/png', 1.0))
|
|
|
// console.log(pdf_img.value);
|
|
|
- console.log(canvas.value.toDataURL(), state.pageNum)
|
|
|
+ // console.log(canvas.value.toDataURL(), state.pageNum)
|
|
|
});
|
|
|
})
|
|
|
});
|
|
@@ -239,7 +172,7 @@ const uploadImg = () => {
|
|
|
is_pdf.value = true
|
|
|
loadingTask = createLoadingTask(state.source);
|
|
|
getPdfImage(state.pageNum);
|
|
|
- } else if (post_ == ".jpg" || post_ == ".png" || post_ == ".bmp"){
|
|
|
+ } else if (post_ == ".jpg" || post_ == ".png" || post_ == ".bmp") {
|
|
|
showImg.src = URL.createObjectURL(file);
|
|
|
rawImg.src = URL.createObjectURL(file);
|
|
|
is_pdf.value = false
|
|
@@ -274,37 +207,37 @@ const predict = () => {
|
|
|
const file: any = convertCanvasToFile(canvas.value, "pdf.png").then(result => {
|
|
|
console.log(result)
|
|
|
data.append('images', result);
|
|
|
- // IMMagicColor(data).then(res => {
|
|
|
- // console.log(res.code)
|
|
|
- // // bug_id.value = res.response_id;
|
|
|
- // predictImg.src = server_ip.value + res.data.out_image
|
|
|
- // predictTime.value = res.data.cost
|
|
|
- // bugId.value = res.response_id;
|
|
|
-
|
|
|
-
|
|
|
- // loading.value = false
|
|
|
- // }).catch(function (err) {
|
|
|
- // loading.value = false
|
|
|
- // // bug_id.value = ""
|
|
|
- // predictTime.value = 0
|
|
|
- // });
|
|
|
+ IMMagicColor(data).then(res => {
|
|
|
+ console.log(res.code)
|
|
|
+ // bug_id.value = res.response_id;
|
|
|
+ predictImg.src = server_ip.value + res.data.out_image
|
|
|
+ predictTime.value = res.data.cost
|
|
|
+ bugId.value = res.response_id;
|
|
|
+
|
|
|
+
|
|
|
+ loading.value = false
|
|
|
+ }).catch(function (err) {
|
|
|
+ loading.value = false
|
|
|
+ // bug_id.value = ""
|
|
|
+ predictTime.value = 0
|
|
|
+ });
|
|
|
})
|
|
|
// console.log(file)
|
|
|
// data.append('images', file.File);
|
|
|
} else {
|
|
|
data.append('images', file);
|
|
|
|
|
|
- // IMMagicColor(data).then(res => {
|
|
|
- // predictImg.src = server_ip.value + res.data.out_image
|
|
|
- // predictTime.value = res.data.cost
|
|
|
- // bugId.value = res.response_id;
|
|
|
-
|
|
|
- // loading.value = !loading.value
|
|
|
- // }).catch(function (err) {
|
|
|
- // loading.value = !loading.value;
|
|
|
- // bugId.value = ""
|
|
|
- // predictTime.value = 0
|
|
|
- // });
|
|
|
+ IMMagicColor(data).then(res => {
|
|
|
+ predictImg.src = server_ip.value + res.data.out_image
|
|
|
+ predictTime.value = res.data.cost
|
|
|
+ bugId.value = res.response_id;
|
|
|
+
|
|
|
+ loading.value = !loading.value
|
|
|
+ }).catch(function (err) {
|
|
|
+ loading.value = !loading.value;
|
|
|
+ bugId.value = ""
|
|
|
+ predictTime.value = 0
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -365,6 +298,12 @@ let src = ''
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
|
|
|
+.place {
|
|
|
+ margin-right: auto;
|
|
|
+ margin-left: auto;
|
|
|
+ border-right: solid 1px #ccc;
|
|
|
+}
|
|
|
+
|
|
|
.show-area {
|
|
|
width: 100%;
|
|
|
}
|