使用QImage :: setText()在PNG文件中存储二进制数据

时间:2014-04-07 19:44:50

标签: c++ qt qt5 qtgui qimage

我需要在PNG图像的元数据中读取/存储二进制数据。具体来说,它将是由Google的protobuf库序列化的gzip压缩数据。

我使用Qt5的QImage库来加载和存储图像,所以如果我能找到一种方法来使用一些Qt库将这个二进制数据添加到{{}},那将非常方便。 {1}}我已经在使用。

我看到QImage类有一个setText method似乎完全符合我的要求,除了一个警告:它需要QImage作为参数而不是{{ 1}},QString构造函数破坏了我的二进制数据。

如何在存储和加载时强制QByteArray保留我的二进制数据?如果那不可能,Qt5中是否还有其他方法可以将元数据添加到PNG图像中?

1 个答案:

答案 0 :(得分:2)

您可以在转换为QString之前尝试encode the data as Base64,然后在回读时尝试decode。我明白这会大大降低你的gzip压缩的好处,但至少你可以试着看看是否有帮助。