Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Чтение ImageMetadata из сгенерированного image? (https://javascript.ru/forum/misc/30566-chtenie-imagemetadata-iz-sgenerirovannogo-image.html)

JDev 08.08.2012 16:57

Чтение 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

Спасибо за помощь.

vadim5june 08.08.2012 17:13

попробуйте свою картинку записать на жесткий диск и прочитать с помощью
http://all-html5.narod.ru/3/dataStream/jpeg.html
только для формата jpg
может получится что то прочитать-я пробовал читать метаданные из файлов mp3 но не получается

Deff 08.08.2012 17:19

<img id=sdf00 src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD
UUlEQVR42lWTWUwTURSGaUtIKY5QweISTUzceDGu0Rj1xURjTNQEE+ODGn0hPhBEQdqZztahBbrA
tFih1Fprh9IBiVLLErZSU7BUoS7VqNH44ovx0S0ovdfO4Ez04cw9Ofec7/5zzr15NEnkUxSVFx8O
bZ1x7nzHN6z9nOhnzOFwWCnECcKoEFbBRrrp6iF/XRvD0BoplkdTuAiIhtt3P3Fu+jJlKlkM1WoX
LFjVeSnpXrC94gV3ciJp1X0L1K7+NtDfvXdpj1TmmUwm8QTfLa867T+ceWTSwO5r5b87XNaDEoBr
v3p2Ai+AU1Qh5OiDGS4UXi4roAisQHBiYfJS2obAVPMyELYcGxViOIaKcLaNLXzadej5nBUBPXW6
hdYW0z4RQOYUXK2tUfr8QeXL0Kn4JKEBk7QWdtrrLggJJEmoCBxVCf50qIaaa0HABFkEPZaLNnGf
wPNFGV0u05Y554bvMQoBPLbxs9t9QydJpHP/KayRbsf+pG1NdgTTgDuGXa8dbS41ZtArxaQYT1Wl
HVqYaloGOcvJIan4X2MdViTl3vExbS+GPfXlvzzutj1LPch9HrYea59t0YIRtAAO+PQuIWYwNKik
Yty41Iuk/3TvMzsCB9HcQR7msgzgjZs7Z5rLQPR6PojeJW2d3oDCoG/IlwAYqlexbp/i9eB19ziu
BoMoAlrR03YZ0G8+0JFhS8EjuhD6zWfuCTEjppcBOKYX1bwaqA5MM2oYZ4pBy7XjrAyY7sPqU01F
cNZW/jtwZeXXVpt5u1RM4JhYzHFBddqz5/28fUU2NwngtVUbZUCE79o6x67/MYiXLiSbS8D9xp1v
I7znkLvDK07A5/MiT7mzdxMMAsdMqxaiWDHkgzePigBUXy9KTfdWeVKNSjjPrvv5uKkYxszlIHX7
eDLeVfkgbt30bt5eAlOOtT9nLRrI03szrOumOtcb4SrTSj2KKfr4nuUZ7kR8HFPAYXLlYqxRl43T
GjjTWAhHCC1MNK/+lWA0cJLRgfsh95G/N1H136z7+BCSuHMuMEGVLo4a1XCKKcuO0WXZBw1FcNig
hmPWbe8jIeeJpdFiCrkHguWUyM92NBKseBut8T92bfsw66z49IyrHH2T5CvlqeCYUvL/ANIZ7+oh
XSdWAAAAAElFTkSuQmCC">

<style type="text/css"></style>
<script type="text/javascript">
alert(document.getElementById('sdf00').src)

</script>

JDev 08.08.2012 17:45

Цитата:

Сообщение от vadim5june
попробуйте свою картинку записать на жесткий диск и прочитать с помощью
http://all-html5.narod.ru/3/dataStream/jpeg.html
только для формата jpg
может получится что то прочитать-я пробовал читать метаданные из файлов mp3 но не получается

нужно для png

Deff - а для png такое пойдет?

vadim5june 08.08.2012 17:55

Цитата:

Сообщение от JDev
для png такое пойдет

у него png и загружена-data:image/png

JDev 08.08.2012 17:59

Цитата:

Сообщение от vadim5june (Сообщение 195685)
у него png и загружена-data:image/png

- что-то я не совсем понимаю, как это, что это?

vadim5june 08.08.2012 18:05

Цитата:

Сообщение от JDev (Сообщение 195687)
- что-то я не совсем понимаю, как это, что это?

Deff показал картинку в формате dataURL
http://www.xiper.net/collect/html-an.../data-url.html
там закодированы в base64

JDev 08.08.2012 18:15

посмотрел сгенериную картинку вот этим
http://entropymine.com/jason/tweakpng/
оказывается что жаба ничего не записала в файл. :(

Deff 08.08.2012 20:07

JDev,
http://habrahabr.ru/post/133351/ http://habrahabr.ru/post/132489/


Часовой пояс GMT +3, время: 07:51.