【问题标题】:PNGJInputException when editing Metadata编辑元数据时出现 PNGJInputException
【发布时间】:2018-08-13 05:18:05
【问题描述】:

我想向 png 图像添加一些元数据。我正在使用 android,并且库 PNGJ 似乎很有帮助,但我总是得到一个“PngjInputException”。

这里是对应的代码sn-p:

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】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 2013-02-23
      • 2012-01-28
      • 1970-01-01
      • 2020-03-23
      • 2019-05-13
      • 2018-01-27
      相关资源
      最近更新 更多