Показать сообщение отдельно
  #1 (permalink)  
Старый 08.08.2012, 16:57
Аспирант
Отправить личное сообщение для JDev Посмотреть профиль Найти все сообщения от JDev
 
Регистрация: 19.11.2011
Сообщений: 77

Чтение ImageMetadata из сгенерированного image?
Здравств, нужно прочитать ImageMetadata с помощью JavaScript.

Нашел вот такую вот инфу.
Чтение метаднных плагином: http://blog.nihilogic.dk/2008/08/ima...data-with.html
Чтение метаднных jQuery-плагином: http://blog.nihilogic.dk/2008/05/jqu...ta-plugin.html

Больше ничего толкового не нашел.
jQuery-плагин работает, но особо данных не выдает.
первый плагин у меня рубит какую-то ошибку.

Фишка в том, что я на сервере генерирую картинку и с помощью вот такого кода загоняю в нее метаданные.
Потом хочу JavaScript-ом эти данные прочитать. Кто-то делал похожее? Кто-то знает как это сделать?

Код:
	private byte[] writeMetadataToImage(ByteArrayOutputStream baos) throws Exception {
		
		InputStream in = new ByteArrayInputStream(baos.toByteArray());
		BufferedImage bImageFromConvert = ImageIO.read(in);
		
		ImageWriter writer = ImageIO.getImageWritersByFormatName("png").next();

		ImageWriteParam writeParam = writer.getDefaultWriteParam();
		ImageTypeSpecifier typeSpecifier = ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB);

		IIOMetadata metadata = writer.getDefaultImageMetadata(typeSpecifier, writeParam);
		
		IIOMetadataNode textEntry = new IIOMetadataNode("tEXtEntry");
		textEntry.setAttribute("keyword", "Blup");
		textEntry.setAttribute("value", "Flup");

		IIOMetadataNode text = new IIOMetadataNode("Oleg");
		text.appendChild(textEntry);


	    IIOMetadataNode root = new IIOMetadataNode("javax_imageio_png_1.0");
	    root.appendChild(text);


		ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
		ImageOutputStream stream = ImageIO.createImageOutputStream(baos2);

		writer.setOutput(stream);
		writer.write(metadata, new IIOImage(bImageFromConvert, null, metadata), writeParam);
		
		stream.close();

		return baos2.toByteArray();

	}
Код взят отсюда: http://stackoverflow.com/questions/6...735707#8735707

Спасибо за помощь.
Ответить с цитированием