webworker и импорт модулей из fast-png не работают
Мне нужны 16-битные изображения в оттенках серого из-за точности детализации информации о глубине. Я использую fast-png и очень им доволен. После импорта мне нужно только использовать команду декодирования, чтобы получить информацию об изображении. Что меня сейчас смущает, так это то, что когда я импортирую fast-png в основную программу или куда-либо еще с помощью этой команды
импортировать {decode} из 'fast-png';
тогда это работает. Я могу декодировать изображения, а затем считывать информацию. Теперь я хотел бы сделать это с веб-работником, и импорт там не работает. Я могу вызвать каждый модуль в веб-воркере с импортом, но, к сожалению, не fast-png, и я этого не понимаю. Кто-нибудь понимает?
//**********thread-manager-class*******************
import {decode} from 'fast-png'; // here it works but i don't need it here
export const texture_loader_threaded = (function() {
class _TextureLoader_Threaded {
constructor(params) {
this.TextureLoaderWorker = new Worker('src/texture-loader-threaded-worker.js', {type: 'module'});
this.TextureLoaderWorker.onmessage = (e) => {
this.result = e.data;
};
}//end constructor
}//end class
return {
TextureLoader_Threaded: _TextureLoader_Threaded
}
})();
//****************texture-loader-threaded-worker.js**********************
//import { decode } from 'fast-png';
//But importing fast-png here causes the worker to stop working.
//I can import all other modules from the project here without any problems.
//But I don't need any of the other modules here, I need fast-png
async function imageLoader() {
const arrayBuffer = await(await fetch('./resources/textures/png/native.png')).arrayBuffer();
//const data = await decode(arrayBuffer); //I need this to decode the arrayBuffer and get the data from the image
postMessage(arrayBuffer); //just a test, it works. But i don't need to return the arrayBuffer.
//I neet to return the decoded data array
//As soon as I import fast-png in the worker above, the return value of the postMessage becomes "undefined",
//even though I haven't changed anything else, just by importing fast-png
}
imageLoader();
это ссылка на fast-png.
https://github.com/image-js/fast-png
к сожалению, там нет модуля javascript для импорта, то есть машинописного текста. Я установил fast-png с помощью npm.