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



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

我正在使用Qt5的QImage库来加载和存储图像,因此如果我能找到一种方法来使用一些Qt库将此二进制数据添加到我已经使用的QImage中,那将非常方便。

我看到 QImage 类有一个 setText 方法,它似乎完全可以做我想要的,除了一个警告:它接受QString作为参数而不是QByteArray,并且 QString 构造函数破坏了我的二进制数据。

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

在转换为 QString 之前,您可以尝试将数据编码为 Base64,然后在回读时解码。我确实知道这会显着降低 gzip 压缩的好处,但至少您可以尝试看看是否有帮助。

相关内容

  • 没有找到相关文章