選擇文件保存路徑有兩種邏輯:
1.先選擇文件保存路徑后拍照;
2.先拍照后選擇路徑保存該bufframe
邏輯1的實現方法:
ui界面
點擊獲取保存路徑PushButton,
void suCam::on_pushButton_fileChoose_clicked()
{
QString srcDirPath = QFileDialog::getExistingDirectory(
this, "choose src Directory",
"/");
if (srcDirPath.isEmpty())
{
return;
}
else
{
qDebug() << "srcDirPath=" << srcDirPath;
srcDirPath += "/";
}
}
獲取保存地址后,自動保存代碼如下:
//Auto Save
void HamamatsuCam::SaveSequenceImg(QImage image, int nframe)
{
std::string m_path = srcDirPath.toStdString();
std::string path = m_path +std::to_string(nframe) + ".bmp";
QString SavePath = QString::fromStdString(m_path);
QString SequenceSavePath = QString::fromStdString(path);
image.save(SequenceSavePath,"tif",100); //類型
}
邏輯2的實現方法:
在已經獲取一張圖片的bufframe的前提下,選擇保存:
//BTN-Save Snap image
void suCam::on_pushButton_save_clicked()
{
//獲取保存路徑
if(snap_img.isNull())return;
_TempPath = QCoreApplication::applicationDirPath();//.exe項目文件所在目錄
dtCurtime = QDateTime::currentDateTime(); //設置當前時間為保存時間
_TempPath = _TempPath + "//Image//" + dtCurtime.toString("yyyyMMddhhmmss"); //保存名稱為path + image(?) + 日期年y月M日d時h分m秒s
strFileName = QFileDialog::getSaveFileName(this,tr("Save Picture"), //類函數QFileDiaLog:獲取文件路徑//getSaveFileName:獲取保存文件名字
_TempPath,
"PNG(*.png);;JPG(*.jpg);;BMP(*.bmp);;TIF(*.tif)");
if(!strFileName.isNull())
{
int nIndex = strFileName.lastIndexOf('.');//尋找‘.’符號在字符串中的id
nIndex++;
int nLen = strFileName.length()-nIndex;
strSuffix = strFileName.right(nLen);//截取‘.’符號后面的字符串,這是為了獲取用戶選擇的文件后綴名
snap_img.save(strFileName,strSuffix.toUpper().toUtf8(),100);//保存圖片
}
}