Обновление метаданных Java PNG ⇐ JAVA
-
Гость
Обновление метаданных Java PNG
Я пытаюсь добавить информацию в метаданные, я написал следующий код:
ImageWriter Writer = ImageIO.getImageWritersByFormatName("png").next(); ImageWriteParam writeParam =writer.getDefaultWriteParam(); ImageTypeSpecifier typeSpecifier = ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB); //добавляем метаданные javax.imageio.metadata.IIOMetadata метаданные = Writer.getDefaultImageMetadata(typeSpecifier, writeParam); IIIOMetadataNode textEntry = новый IIIOMetadataNode("tEXtEntry"); textEntry.setAttribute("ключевое слово", "Заголовок"); textEntry.setAttribute("значение", "1515456165165165656565165"); IIIOMetadataNode text = новый IIIOMetadataNode("tEXt"); text.appendChild(textEntry); IIIOMetadataNode root = новый IIIOMetadataNode("javax_imageio_png_1.0"); root.appendChild(текст); Metadata.mergeTree("javax_imageio_png_1.0", root); Изображение BufferedImage = ImageIO.read(tempFile); //запись данных IIOImage iioImage = новый IIOImage (изображение, ноль, метаданные); ByteArrayOutputStream baos = новый ByteArrayOutputStream(); Поток ImageOutputStream = ImageIO.createImageOutputStream(baos); писатель.setOutput(поток); Writer.write(метаданные, новый IIOImage(изображение, ноль, метаданные), writeParam); Файл file1 = new File("C:/Users/Akiro/Desktop/Новая папка/Раб/тесты/new.png"); пытаться { ImageIO.write(изображение, «png», файл1); } catch (Исключение е) { е.printStackTrace(); } поток.закрыть(); выполняется без ошибок, но в метаданных никаких изменений не отображается
В чем может быть ошибка или как лучше это сделать (желательно с примером)?
Я пытаюсь добавить информацию в метаданные, я написал следующий код:
ImageWriter Writer = ImageIO.getImageWritersByFormatName("png").next(); ImageWriteParam writeParam =writer.getDefaultWriteParam(); ImageTypeSpecifier typeSpecifier = ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB); //добавляем метаданные javax.imageio.metadata.IIOMetadata метаданные = Writer.getDefaultImageMetadata(typeSpecifier, writeParam); IIIOMetadataNode textEntry = новый IIIOMetadataNode("tEXtEntry"); textEntry.setAttribute("ключевое слово", "Заголовок"); textEntry.setAttribute("значение", "1515456165165165656565165"); IIIOMetadataNode text = новый IIIOMetadataNode("tEXt"); text.appendChild(textEntry); IIIOMetadataNode root = новый IIIOMetadataNode("javax_imageio_png_1.0"); root.appendChild(текст); Metadata.mergeTree("javax_imageio_png_1.0", root); Изображение BufferedImage = ImageIO.read(tempFile); //запись данных IIOImage iioImage = новый IIOImage (изображение, ноль, метаданные); ByteArrayOutputStream baos = новый ByteArrayOutputStream(); Поток ImageOutputStream = ImageIO.createImageOutputStream(baos); писатель.setOutput(поток); Writer.write(метаданные, новый IIOImage(изображение, ноль, метаданные), writeParam); Файл file1 = new File("C:/Users/Akiro/Desktop/Новая папка/Раб/тесты/new.png"); пытаться { ImageIO.write(изображение, «png», файл1); } catch (Исключение е) { е.printStackTrace(); } поток.закрыть(); выполняется без ошибок, но в метаданных никаких изменений не отображается
В чем может быть ошибка или как лучше это сделать (желательно с примером)?
Мобильная версия