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.

0 ответов

Другие вопросы по тегам