You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.1 KiB
C++
102 lines
3.1 KiB
C++
#include "qsaveimg.h"
|
|
#include "Result2Ui.h"
|
|
#include "DetectState.h"
|
|
#include "QString"
|
|
#include "QDir"
|
|
#include "QDateTime"
|
|
#pragma execution_character_set("utf-8")
|
|
QSaveImg::QSaveImg(QObject *parent)
|
|
: QObject(parent)
|
|
{
|
|
pState = NULL;
|
|
}
|
|
|
|
QSaveImg::~QSaveImg()
|
|
{
|
|
|
|
}
|
|
|
|
void QSaveImg::doWork(Result2Ui* m_Res)
|
|
{/*此处需要优化*/
|
|
if (pState != NULL)
|
|
{
|
|
QDir m_test;
|
|
bool IsImgDir = m_test.exists(pState->m_SaveImgDirPath);//检查用户设定的保存检测图片的路径是否存在 如果不存在,按照系统默认的路径来
|
|
if (!IsImgDir)
|
|
pState->m_SaveImgDirPath = pState->m_applicationDirPath;
|
|
|
|
QString baseSavePath = pState->m_SaveImgDirPath + "\\Data\\";//检查保存图片的文件夹是否存在 不存在,就创建
|
|
bool IsSave = m_test.exists(baseSavePath);
|
|
if (!IsSave)
|
|
m_test.mkdir(baseSavePath);
|
|
|
|
QString dataTime = QDateTime::currentDateTime().toString("yyyy-MM-dd");
|
|
QString fileSavePath = baseSavePath + "\\" + dataTime;
|
|
IsSave = m_test.exists(fileSavePath);
|
|
if (!IsSave)
|
|
m_test.mkdir(fileSavePath);
|
|
QString filename = m_Res->m_strModel;
|
|
if (m_Res->m_strModel != "NG")
|
|
{
|
|
QString goodsourceDir = fileSavePath + "\\Good";
|
|
IsSave = m_test.exists(goodsourceDir);
|
|
if (!IsSave)
|
|
m_test.mkdir(goodsourceDir);
|
|
filename += QDateTime::currentDateTime().toString("hhmmsszzz");
|
|
if (pState->saveGood == 1){
|
|
goodsourceDir += "\\Source";
|
|
IsSave = m_test.exists(goodsourceDir);
|
|
if (!IsSave)
|
|
m_test.mkdir(goodsourceDir);
|
|
goodsourceDir += "\\";
|
|
goodsourceDir += m_Res->m_strModel;
|
|
IsSave = m_test.exists(goodsourceDir);
|
|
if (!IsSave)
|
|
m_test.mkdir(goodsourceDir);
|
|
QString resultpath = goodsourceDir + "\\" + filename + ".png";
|
|
m_Res->m_pixSrc.save(resultpath);
|
|
}
|
|
QString goodtargetDir = fileSavePath + "\\Good";
|
|
if (pState->saveCutGood == 1){
|
|
goodtargetDir += "\\Target";
|
|
IsSave = m_test.exists(goodtargetDir);
|
|
if (!IsSave)
|
|
m_test.mkdir(goodtargetDir);
|
|
goodtargetDir += "\\";
|
|
goodtargetDir += m_Res->m_strModel;
|
|
IsSave = m_test.exists(goodtargetDir);
|
|
if (!IsSave)
|
|
m_test.mkdir(goodtargetDir);
|
|
QString resultpath = goodtargetDir + "\\" + filename + "Res.png";
|
|
m_Res->m_pixResult.save(resultpath);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
QString errorSourceDir = fileSavePath + "\\Error";
|
|
filename += QDateTime::currentDateTime().toString("hhmmsszzz");
|
|
IsSave = m_test.exists(errorSourceDir);
|
|
if (!IsSave)
|
|
m_test.mkdir(errorSourceDir);
|
|
if (pState->saveBad == 1){
|
|
errorSourceDir += "\\Source";
|
|
IsSave = m_test.exists(errorSourceDir);
|
|
if (!IsSave)
|
|
m_test.mkdir(errorSourceDir);
|
|
QString resultpath = errorSourceDir + "\\" + filename + ".png";
|
|
m_Res->m_pixSrc.save(resultpath);
|
|
}
|
|
QString errortargetDir = fileSavePath + "\\Error";
|
|
if (pState->saveCutBad == 1){
|
|
errortargetDir += "\\Target";
|
|
IsSave = m_test.exists(errortargetDir);
|
|
if (!IsSave)
|
|
m_test.mkdir(errortargetDir);
|
|
QString resultpath = errortargetDir + "\\" + filename + "Res.png";
|
|
m_Res->m_pixResult.save(resultpath);
|
|
}
|
|
}
|
|
}
|
|
emit(resultReady(m_Res));
|
|
}
|