Как сохранить изображение из тэга IMG?

112
13 апреля 2022, 14:50

Проверяю один сайт и столкнулся с довольно глупой проблемой.

На сайте в HTML документе есть img:

<img src="https://link.com/generate_word_picture?rand=6409937820" alt="">

Мне нужно получить эту картинку. Но проблема заключается в том, что она генерируется абсолютно случайно (Даже с ?rand). Какими средствами JS можно вытянуть эту картинку из DOM, а не делать запрос на сервер за картинкой?

Answer 1
const img = document.getElementById('imgid')
img.onload = function(){
  const canvas = document.createElement('canvas')
  canvas.width = img.width
  canvas.height = img.height
  const ctx = canvas.getContext("2d");
  ctx.drawImage(img, 0, 0);
  const base64 = canvas.toDataURL("image/png")
}

В "base64" будет ваша картинка закодированная в base64. Формат можно поменять, например "image/jpeg". Если хотите ее скачать ну можно например так:

const a = document.createElement("a");
a.href = "data:application/octet-stream;base64," + base64;
a.download = "imageName.png"
a.click();

А вообще скачать можно и без канваса:

const img = document.getElementById('imgid')
img.onload = function(){
  const a = document.createElement("a");
  a.href = img.src
  a.download = "imageName.png"
  a.click();
}
READ ALSO
Загрузка фото на сайт и его обработка

Загрузка фото на сайт и его обработка

Как на сайте реализовать загрузку фото пользователем с помощью тега button и отображения этой картинкиВсе средствами HTML, CSS, JS, без сторонних...

113
Bootstrap классы внутри PHP блока

Bootstrap классы внутри PHP блока

Цель такая, нужно вывыести данные из БД в виде таблицыВсё работает,но не красиво, хотел подключить bootstrap и сделать покрасивее

213
Проблема с совмещением ребер при выводе наклонных линий, сглаживание в Canvas JS

Проблема с совмещением ребер при выводе наклонных линий, сглаживание в Canvas JS

Вывожу на <canvas> линии, соединенные в треугольники, полученные в результате триангуляции ДелонеПри этом возникают артефакты на стыках...

219