我需要在PNG图像的元数据中读取/存储二进制数据。具体来说,它将是由Google的protobuf库序列化的gzip压缩数据。
我使用Qt5的QImage
库来加载和存储图像,所以如果我能找到一种方法来使用一些Qt库将这个二进制数据添加到{{}},那将非常方便。 {1}}我已经在使用。
我看到QImage
类有一个setText
method似乎完全符合我的要求,除了一个警告:它需要QImage
作为参数而不是{{ 1}},QString
构造函数破坏了我的二进制数据。
如何在存储和加载时强制QByteArray
保留我的二进制数据?如果那不可能,Qt5中是否还有其他方法可以将元数据添加到PNG图像中?
答案 0 :(得分:2)
您可以在转换为QString之前尝试encode the data as Base64,然后在回读时尝试decode。我明白这会大大降低你的gzip压缩的好处,但至少你可以试着看看是否有帮助。