编辑元数据时出现PNGJInputException

问题描述 投票:0回答:1

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

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

java android png
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.