PNGJ: невозможно добавить метаданные с собственным ключом - PullRequest
0 голосов
/ 11 июня 2018

Мне нужно добавить метаданные во время создания 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);Строка mrv = reader.getMetadata (). GetTxtForKey ("mykey")

Однако метаданные Pdi установлены.Использование чего-то известного вместо моего ключа, например PngChunkTextVar.KEY_Comment, тоже не помогает.Я отладил запись и, и в writer.end () там есть значение с моим ключом.

Что я делаю не так?Как заставить это работать?

1 Ответ

0 голосов
/ 11 июня 2018

Ну, оказалось, что-то не хватает в моем коде чтения, а именно:

reader.readSkippingAllRows();

После этого мой код работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...