如何使用qt中的时间戳保存图像

ven*_*914 -1 qt timestamp datestamp save-image

我正在为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);

    }
Run Code Online (Sandbox Code Playgroud)

使用dateStamp保存图像,例如.goldenRefImg [Wed Feb 5 2014] .jpg当我使用string-path时.但是当我使用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" 
Run Code Online (Sandbox Code Playgroud)

现在我刚刚回忆起一个图像无法用冒号这样的特殊字符保存:timeStamp中有哪些.可以改变时间格式吗?我试过这种方式:

path2.replace(":","-");
Run Code Online (Sandbox Code Playgroud)

但是E:\也被转换成E-.Please指南.感谢你.

Fra*_*eld 6

const QDateTime now = QDateTime::currentDateTime();
const QString timestamp = now.toString(QLatin1String("yyyyMMdd-hhmmsszzz"));
const QString filename = QString::fromLatin1("/some/path/someimage-%1.jpg").arg(timestamp);
Run Code Online (Sandbox Code Playgroud)

这将获取当前日期/时间,使用QDateTime :: toString()将其转换为字符串(文档列出格式化选项)并从中构造文件名.然后,只需使用filenameQImage的::保存()QImageWriter.