Показать сообщение отдельно
  #5 (permalink)  
Старый 07.10.2020, 21:26
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,701

// img - элемент <IMG>
// form - желаемый формат'image/jpeg' или 'image/png'
// qa - степень сжатия для jpg (от 0 до 1) 
// см [url]https://developer.mozilla.org/ru/docs/Web/API/HTMLCanvasElement/toBlob[/url]

const ImgtoBlob (img, form, qa) =>{	
	const canvas = document.createElement('canvas');
    const ctx = canvas.getContext('2d');
    canvas.height = img.naturalHeight;
    canvas.width = img.naturalWidth;
    ctx.drawImage(img, 0, 0);
    return new Promise ((res, rej) => {
		canvas.toBlob ((blob) => res(blob), form, qa)
    })
 }
 
//Вызов 
 
ImgtoBlob (img, 'image/jpeg', 0.9).then (blob) => {/* тут можно обрабатывать блоб*/})

//или

let blob = await ImgtoBlob (img, 'image/png')
/* тут можно обрабатывать блоб */


Т.е. это заново кодирует изображение в файл и представляет его в виде блоба.

Последний раз редактировалось voraa, 07.10.2020 в 21:33.
Ответить с цитированием