показать изображение / JPEG в IMG с JavaScript

0

Скажем, http://example.com/image возвращает сгенерированные данные изображения как image/jpeg с некоторыми дополнительными данными в заголовках ответов. http://example.com/image возвращает сгенерированное изображение, отличающееся для каждого запроса. Генерация изображений несколько случайна (или, по крайней мере, независима от запроса). Ответ содержит дополнительные данные, такие как время создания (но не только).

Мне нужно сделать некоторые операции с данными из заголовков и отобразить изображение. Проблема, с которой я столкнулась, - показать изображение вместе с заголовками. Скажем, я хочу отобразить изображение и распечатать заголовки ответов чуть ниже изображения. Как я могу это сделать?

Я получаю изображение с помощью angularjs и $http. И тогда у меня есть

var imagedata = response.data
var someheader = response.header('some-header')

Отсюда, как мне отображать imagedata? Все, что я нашел, это преобразовать данные в base64. Есть ли способ избежать такого преобразования?

РЕДАКТИРОВАТЬ:

Я забыл упомянуть, что я ищу что-то, что будет работать для старых браузеров, таких как ie8/9. Я знаю, что есть URL.createObjectURL. Но это не похоже на совместимость.

  • 0
    просто нет, вы должны конвертировать его; если вы можете поделиться ответом с заголовком, может быть;
  • 1
    Я не понимаю, что вы пытаетесь сделать. Какие данные поступают в заголовках? Что бы вы хотели сделать с данными? Как это влияет на то, как вы будете отображать изображение?
Показать ещё 6 комментариев

1 ответ

1

Если вы включили изображение, встроенное в тег IMG, вы должны преобразовать его в base64. Причиной этого является то, что данные двоичного изображения могут содержать любое количество символов и символов, которые недействительны в HTML.

Представьте, что любые данные изображения, которые вы вставляете, станут частью HTML/DOM страницы hte, включая любые кавычки, двойные кавычки, большие/меньшие, чем знаки, в двоичных данных изображения.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: В Javascript это будет выглядеть так:

encodedImage = window.btoa(binaryimagedata);

newimg = Document.createElement('img')
newimg.src = "data:text/css;base64,"+encodedImage
document.body.appendChild
  • 0
    Как изображение с типом содержимого image / jpeg может содержать что-то еще, кроме двоичных данных? Можете показать пример?
  • 0
    Не будет Вы должны преобразовать его в Base64, прежде чем помещать его в HTML / DOM.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню