我正在为 Windows PC 创建一个 GUI。我想在 PC 上存储一系列图像。图像的名称是相同的。但我想在它们后面加上时间戳。那么,如何在 Qt 中使用时间戳保存图像?除此之外,图像应该像这个例子一样保存:referenceImage<.date.><.time.>jpg 其中日期和时间对应于图像在 Windows PC 上保存的日期和时间。我也尝试过以下
在这里,我通过单击按钮实现了这一点:-
void MainWindow::on_generateImagePushButton_clicked()
{
QDate date = QDate::currentDate();
QString dateString = date.toString();
QString path = QString("E:\\QT1\\timeStampTrial\\goldenRefImg[%1].jpg").arg(dateString);
qDebug()<<"path: "<<path;
/*display current time*/
QTime time = QTime::currentTime();
QString timeString = time.toString();
QString path2 = QString("E:\\QT1\\timeStampTrial\\goldenRefImg[%1 %2].jpg").arg(dateString).arg(timeString);
qDebug()<<"path2: "<<path2;
/*converting from QString to char* */
QByteArray bA = path2.toLocal8Bit();
const char *c_charArray = bA.data();
/*saving image*/
IplImage *imgWithTimeStamp = cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);
cvSaveImage(c_charArray, imgWithTimeStamp);
}
图像使用 dateStamp 保存,例如。GoldenRefImg[Wed Feb 5 2014].jpg 当我使用字符串路径时。但是当我使用 string-path2 时,它不会像我期望的那样保存 dateStamp 和 timeStamp,即 goldenRefImg[Wed Feb 5 2014 10:47:32].jpg 但是显示路径和路径 2 的 qDebug 语句正确显示。应用程序输出:
Starting E:\QT1\timepass-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2010__Qt_SDK__Debug\debug\timepass.exe...
path: "E:\QT1\timeStampTrial\goldenRefImg[Wed Feb 5 2014].jpg"
path2: "E:\QT1\timeStampTrial\goldenRefImg[Wed Feb 5 2014 10:47:23].jpg"
现在我刚刚回忆起无法使用特殊字符(例如冒号)保存图像:时间戳中存在。可以更改时间格式吗?我试过这样:
path2.replace(":","-");
但是 E:\ 也被转换为 E-。请指导。感谢你。