我需要在创建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()中,我的键的值就在那里。
我做错了什么?如何使这项工作?
答案 0 :(得分:0)
嗯,事实证明我的阅读代码中缺少了一些内容,即:
let someRange = 0...0
之后我的代码就可以了。