Как получить содержимое изображения (не URL) из элемента IMG? - PullRequest
6 голосов
/ 11 августа 2011

Мы используем элемент управления Eclipse SWT WebBrowser для рендеринга HTML-страниц для нашего Java-приложения.Если страница содержит изображение, мы хотим получить содержимое изображения.Мы можем получить доступ к DOM, чтобы получить элемент IMG, но, похоже, нет способа получить фактический контент (т.е. байты изображения), кроме повторного извлечения изображения с использованием URL-адреса изображения.(Мы можем получить URL изображения через атрибут 'src'.) Есть ли способ получить фактические байты изображения из DOM?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2013

Проверьте https://developer.mozilla.org/en-US/docs/Web/API/FileReader это позволит вам создавать URL-адреса данных base64, может не работать в зависимости от версии вашего браузера.

0 голосов
/ 17 сентября 2013

Я не уверен, что это то, что вы ищете, но в основном вы можете просто сделать напечатанный XHR (такой как ArrayBuffer) для источника изображения (он должен быть кэширован, так что никакого реального удара при этом не произойдет). Я предполагаю, что вы используете браузер, совместимый с HTML5 (или такой, который поддерживает ArrayBuffer или нужный вам тип). Я предполагаю, что в документе есть хотя бы одно изображение с правильным источником, см. Fiddle для демонстрации работы.

var img = document.querySelector('img'), xhr = new XMLHttpRequest();
xhr.open('GET', img.src, true);
xhr.responseType = 'arraybuffer';
xhr.addEventListener('load', handleBuffer, false);
xhr.send();
// Your image data ArrayBuffer, feel free to change the type.
function handleBuffer (data) {
   var arryBuffer = data.target.response;
}

Образец скрипки

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