|
@@ -18,6 +18,9 @@ const gm = require("gm").subClass({
|
|
|
appPath: getExtraDir("imagemagick/")
|
|
|
});
|
|
|
|
|
|
+import log4js from "@/plugins/logger";
|
|
|
+const logger = log4js.getLogger("scan");
|
|
|
+
|
|
|
/**
|
|
|
* 解析图片code信息
|
|
|
* @param {String} imgPath 图片路径
|
|
@@ -82,10 +85,9 @@ function checkImageAnswerArea(imgPath, codeArea) {
|
|
|
imgObj.crop(codeArea.width, codeArea.height, codeArea.x, codeArea.y);
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
- // 写入临时文件
|
|
|
imgObj.write(tmpFile, function(err) {
|
|
|
if (err) {
|
|
|
- reject("作答区域临时文件获取失败");
|
|
|
+ reject(err);
|
|
|
return;
|
|
|
}
|
|
|
// 获取黑点检测工具工具
|
|
@@ -94,29 +96,35 @@ function checkImageAnswerArea(imgPath, codeArea) {
|
|
|
let code;
|
|
|
try {
|
|
|
const DecodeResult = childProcess.execSync(`${exec} ${tmpFile}`);
|
|
|
- // console.log(DecodeResult.toString());
|
|
|
- const codes = DecodeResult.toString()
|
|
|
+ code = DecodeResult.toString()
|
|
|
.replace(/\r/, "")
|
|
|
- .replace(/\n/, "")
|
|
|
- .split(":");
|
|
|
- // console.dir(codes);
|
|
|
- code = codes[0];
|
|
|
- console.log(code);
|
|
|
+ .replace(/\n/, "");
|
|
|
} catch (e) {
|
|
|
- console.log(e);
|
|
|
- reject("作答区域检测错误");
|
|
|
+ reject(e);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- fs.unlink(tmpFile, () => {});
|
|
|
+ // fs.unlink(tmpFile, () => {});
|
|
|
resolve(code);
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
|
|
|
async function checkEmptyCoverFilled(firstImage, secondImage, codeArea) {
|
|
|
- const result1 = await checkImageAnswerArea(firstImage, codeArea);
|
|
|
- const result2 = await checkImageAnswerArea(secondImage, codeArea);
|
|
|
+ logger.info(`firstImage: ${firstImage}`);
|
|
|
+ logger.info(`secondImage: ${secondImage}`);
|
|
|
+ logger.info(`codeArea: ${JSON.stringify(codeArea)}`);
|
|
|
+
|
|
|
+ const result1 = await checkImageAnswerArea(firstImage, codeArea).catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ });
|
|
|
+ const result2 = await checkImageAnswerArea(secondImage, codeArea).catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ });
|
|
|
+ // console.log(result1, result2);
|
|
|
+ logger.info(`result1: ${result1}`);
|
|
|
+ logger.info(`result2: ${result2}`);
|
|
|
+
|
|
|
return result1 === "1" && result2 === "0";
|
|
|
}
|
|
|
|