如何将pixmap保存到JSON文档

时间:2014-11-12 14:05:11

标签: json qt

我需要将包含少量图像的一些数据保存并加载到QJsonDocument。

要保存像素图:

QPixmap p( ... );
QByteArray res;
QBuffer buffer( &res );
buffer.open( QIODevice::WriteOnly );
p.save( &buffer, "PNG" );

保存到QJsonObject:

json.insert( "Preview" , res );

结果"预览"数据被破坏(来自QJsonDocument(json)。toJson()):

"预览":"�PNG\ r \ n \ u001a \ n"

我做错了什么?如何正确保存图像?

1 个答案:

答案 0 :(得分:3)

你应该编码为base64:

json.insert( "Preview" , res.toBase64() );

这将保留数据,您在阅读时需要解码:

res = QByteArray::fromBase64(json.take("Preview").toString());