使用Qt保存并检索图像

时间:2010-12-16 22:18:09

标签: qt

事实上,我发现了一些与我的问题相关的有用文章,但不完全是,我会尝试详细解决我的问题

我有一个表,拖车列id为整数,pix为blob

我有一个带标签的表格,两个按钮打开并保存

我尝试将图片打开到标签中,然后在单击“保存”时我必须保存到数据库表中

此外,如果我添加导航按钮作为下一个和上一个,我希望再次检索图像。

请帮忙吗?

1 个答案:

答案 0 :(得分:2)

以下是将QImage保存到数据库中的简短示例:

// Converting image to byte array:
QByteArray bytes;
{
    QBuffer buffer (&bytes);
    buffer.open (QBuffer::WriteOnly);
    image.save (&buffer, "PNG");
}

// Writing data into the database:
QString id_string = id == -1 ? "NULL" : QString::number (id);
QSqlQuery query ("REPLACE INTO images "
                 "(id, image) VALUES (:id, :image)");
query.bindValue (":id", id_string);
query.bindValue (":image", QString (bytes.toBase64()));
if (!query.exec()) throw some_exception;

所以基本上你需要将图像转换为字节数组,然后只需使用SQL查询将其保存在数据库中。请注意,我们在演讲时正在处理这个问题,因此上面的代码可能不完善。希望这会有所帮助。