pleora sdk将PvBuffer或PvRawData转换为QByteArray

时间:2019-02-14 16:34:59

标签: qt

我正在使用pleora sdk从外部摄像机捕获图像,并且能够成功将数据写入磁盘上的tiff图像文件。我的下一步是将数据存储更改为SQLite,而不是磁盘文件。

我有PvBuffer * lBuffer指针工作正常。现在,我需要将该数据转换为可用于写入SQLite的格式。我在Linux上使用Qt,因此QByteArray会非常方便。

这是针对pleora sdk和Qt的一个特定问题。我希望有人对此有经验。

PvRawData * rawData = lBuffer-> GetRawData();

QByteArray ba;

//需要将数据从rawData复制到ba。

谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了答案,并希望在其他人有相似之处的情况下发布。我使用reintepret_cast方法。

data = lBuffer->GetDataPointer()
imgSize = lBuffer->GetPayloadSize();
const char *d = reinterpret_cast<char *>(data);
QByteArray ba(d, imgSize);
QSqlQuery q = QSqlQuery( db );
q.prepare("INSERT INTO imgData (image) values (:imageData)");
q.bindValue(":imageData", ba);
if ( !q.exec() )
qDebug() << "Error inserting image into table: " << q.lastError() << endl;
else
qDebug() << "Query executed properly" << endl;