编辑元数据时出现PNGJInputException

时间:2018-03-05 14:11:36

标签: java android png

我想在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:无法提供字节(过早结束?)

任何人都可以帮我解决这个例外吗?

1 个答案:

答案 0 :(得分:0)

您正在写入您正在阅读的同一文件。你永远不应该这样做。将destFile更改为其他文件并重试。 (警告:运行上述代码后,首先检查源png是否未损坏。)