我必须将几个文本参数(一个 UUID 和几个表示整数的字符串)关联到 PNG 图像,当 PNG 文件通过网络从一个 Android 设备传递到另一个设备时,它们可以跟随图像.这是我会使用几个自定义辅助 block (类似于 EXIF 字段)将我的数据存储在 PNG 图像本身中的典型情况。
也许只有我一个人能找到关于在 Android 上从 Java 代码读取和写入 PNG 自定义元数据的唯一信息是这篇 SO 帖子:
Writing image metadata in Java, preferably PNG
它甚至提供了一些代码(非常冗长,与 Java 一样)。
那些相同的 SO 帖子也引用了 PNGJ:http://code.google.com/p/pngj/
老实说,我很乐意在这个项目中不使用另一个库。
有人知道在 Android 中写入和读取 PNG 文件中的文本元数据的其他方法吗?也许是一种不那么冗长的方式……也许是一种不需要单独的库的方式……
还有其他信息来源吗?任何教程?有什么例子吗?
如果需要(JPEG 等),我愿意使用不同(但等效)的图像文件格式。
也适用于 iOS 和 Windows 8 Phone 的解决方案会更好,但实际上并不是必需的。
最佳答案
我最近不得不做类似的事情,所以我不得不研究这个主题。 Android 不提供处理 png 元数据的选项。您将不得不使用外部库(PNGJ 似乎是一个不错的选择)。 就我而言,由于我正在对 Android 框架进行更改,因此我没有使用外部库,而是对 skia(而不是 Android 图形库)进行了更改。
如果您需要更多信息,我可以为您提供,但我认为这与您的情况无关。
关于java - 如何在 Android 中读取/写入自定义 PNG 元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588965/