我需要在PNG图像的元数据中读取/存储二进制数据。具体来说,它将是由谷歌的protobuf库序列化的gzip数据。
我正在使用Qt5的QImage
库来加载和存储图像,因此如果我能找到一种方法来使用一些Qt库将此二进制数据添加到我已经使用的QImage
中,那将非常方便。
我看到 QImage
类有一个 setText
方法,它似乎完全可以做我想要的,除了一个警告:它接受QString
作为参数而不是QByteArray
,并且 QString
构造函数破坏了我的二进制数据。
如何在存储和加载时强制QString
保留我的二进制数据?如果这是不可能的,Qt5中是否有其他方法可以将元数据添加到PNG图像?
在转换为 QString 之前,您可以尝试将数据编码为 Base64,然后在回读时解码。我确实知道这会显着降低 gzip 压缩的好处,但至少您可以尝试看看是否有帮助。