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.
wheeldetect/src/tpMain/qsaveimg.cpp

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));
}