我想在png图像中添加一些元数据。我正在使用android和PNGJ库似乎非常有帮助,但我总是得到一个" PngjInputException"。
以下是相应的代码段:
PngReader pngReader = new PngReader(file);
File destFile = new File(file.getAbsolutePath());
PngWriter pngWriter = new PngWriter(destFile, pngReader.imgInfo, true);
pngWriter.copyChunksFrom(pngReader.getChunksList(), ChunkCopyBehaviour.COPY_ALL_SAFE);
LinkedHashMap<String, byte[]> hashMap = bluetoothHelper.getHashMap();
for (String key : hashMap.keySet()) {
pngWriter.getMetadata().setText(key, hashMap.get(key).toString());
}
for (int row = 0, c = 0; row < pngWriter.imgInfo.rows; row++) {
IImageLine line = pngReader.readRow();
pngWriter.writeRow(line);
}
pngReader.end();
pngWriter.end();
这是抛出的异常:
ar.com.hjg.pngj.PngjInputException:无法提供字节(过早结束?)
任何人都可以帮我解决这个例外吗?
答案 0 :(得分:0)
您正在写入您正在阅读的同一文件。你永远不应该这样做。将destFile
更改为其他文件并重试。 (警告:运行上述代码后,首先检查源png是否未损坏。)