XFILE::CFile *CXBMCTestUtils::CreateTempFile(std::string const& suffix) { CTempFile *f = new CTempFile(); if (f->Create(suffix)) return f; delete f; return NULL; }
bool CGattooImg::saveToSD() { if (m_Img.empty()) return true; IImgConverter* pConverter = createImgConverter(IImgConverter::enDefault); cv::cvtColor(m_Img, m_Img, CV_RGB2GRAY); CTempFile tmpFile; tmpFile.Create(); pConverter->Convert(m_Img, tmpFile); if (0x8000 & GetKeyState(VK_SHIFT)) { pConverter->CreateBitmap(tmpFile.getName()); } cv::cvtColor(m_Img, m_Img, CV_GRAY2RGB); std::string strDrive; getDriveToSave(strDrive); if (0 == strDrive.size()) return false; SWriteProgressData data; data.chDrive = strDrive.c_str()[0]; data.szFilePath = tmpFile.getName(); CUPDialog progress(AfxGetMainWnd()->GetSafeHwnd(), ThreadProc, (LPVOID)&data); progress.SetDialogTemplate(nullptr, MAKEINTRESOURCE(IDD_DIALOG_SAVE_PROGRESS), IDC_STATIC_PROGRESS, IDC_PROGRESS, IDC_BUTTON_CANCEL); if (IDOK == progress.DoModal()) MessageBox(AfxGetMainWnd()->GetSafeHwnd(), _T("Image was saved to SD card successfully."), _T("Information"), MB_OK|MB_ICONINFORMATION); else MessageBox(AfxGetMainWnd()->GetSafeHwnd(), _T("Image saving to SD card was interrupted."), _T("Warning"), MB_OK|MB_ICONEXCLAMATION); pConverter->Destroy(); return true; }