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