PNGJ:无法使用自己的密钥

时间:2018-06-11 11:46:21

标签: png

我需要在创建png期间添加元数据,我的操作如下:

private byte[] createData(BufferedImage image, String metaData, float dpi) {
     ByteArrayOutputStream bos = new ByteArrayOutputStream();
     final int width = image.getWidth();
     final int height = image.getHeight();
     final boolean alphaChannel = image.getAlphaRaster() != null;

     ImageInfo imageInfo = new ImageInfo(width, height, 8, alphaChannel);
     PngWriter writer = new PngWriter(bos, imageInfo);
     writer.getMetadata().setText("mykey", "xxxx");
     writer.getMetadata().setDpi(dpi);
     convertToRGB(image, writer);
     writer.end();

     return bos.toByteArray();
}

当立即读回时,找不到该键的值:     PngReader reader = new PngReader(is);     String mrv = reader.getMetadata()。getTxtForKey(“mykey”)

然而,

设置了Pdi元数据。使用已知代替我的密钥的东西,比如PngChunkTextVar.KEY_Comment也无济于事。 我调试了写作,并且在writer.end()中,我的键的值就在那里。

我做错了什么?如何使这项工作?

1 个答案:

答案 0 :(得分:0)

嗯,事实证明我的阅读代码中缺少了一些内容,即:

let someRange = 0...0

之后我的代码就可以了。