Я создаю веб-работника, который извлекает изображение, а затем возвращает некоторые метаданные (ширина, высота и средняя темнота изображения, рассчитанные по данным пикселей изображения).
Пока у меня естьрабочий, который работает, чтобы получить ширину и высоту изображения, однако он работает только в Chrome, поскольку полагается на createImageBitmap ().Я также не могу, насколько я вижу, получить доступ к значениям данных пикселей.
self.onmessage = (e) => {
const { url, key } = e.data;
fetch(url, {
method: 'GET',
mode: 'cors',
cache: 'default'
}).then(response => {
return response.blob();
}).then(async (blob) => {
const image = await self.createImageBitmap(blob);
self.postMessage({ url, key, metadata: {
width: image.width,
height: image.height,
aspectRatio: image.width / image.height,
}});
image.close();
});
}
Есть ли способ, которым это может быть достигнуто без передачи изображения обратно в основной поток для получения данных изображения.