Я создаю графический интерфейс для ПК с ОС Windows. Я хочу сохранить серию изображений на ПК. Название изображений идентично. Но я хочу добавить их с отметками времени. Итак, как сохранить изображение с помощью timestamp в Qt? в дополнение к этому, изображения изгоняются быть сохранены что-то вроде этого примера:. referenceImage < .date> < .time> JPG где дата и время соответствуют дате и времени на, при котором изображение было сохранено на. Windows PC. Я попытался слишкомКак сохранить изображение с помощью timestamp в qt
Здесь я реализовал это в нажатии кнопки следующего: -
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 Но операторы qDebug, показывающие путь и путь2, отображаются правильно. Выход Применение:
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"
Теперь я только вспомнила, что изображение не может быть сохранен с помощью специальных символов, таких как толстой кишки: какие там в TIMESTAMP. Можно ли изменить формат времени? Я попробовал этот путь:
path2.replace(":","-");
Но E: \ также преобразуется в E-.Please руководства. Спасибо.
Qt не QT. Вы должны показать образец кода и более подробно описать проблему. –
Кроме того, @DmitrySazonov, может и сказать, где я был недостаточно ясен? то, соответственно, буду исправлять. Спасибо. –
Прочитайте документацию о аргументах sprintf. Он не принимает типы Qt. Такой «трюк» может быть выполнен следующим образом: «QString path = QString (« E: \\ Somdir \\ .. \\ refImg [% 1] .jpg ») .arg (dateString);'. Я рекомендую вам прочитать некоторые базовые книги о C/C++, чтобы избежать таких вопросов. И узнайте, как делать пошаговую отладку. –