Optionalsize: number = defaultPoolSizeThe size of the pool. Defaults to the number of CPUs
available. When this parameter is null or 0, then the
decoding will be done in the main thread.
OptionalcreateWorker: () => Worker = createA function that creates the decoder worker.
Defaults to a worker with all decoders that ship with geotiff.js. The createWorker()
function is expected to return a Worker compatible with Web Workers. For code that
runs in Node, web-worker is a good choice.
A worker that uses a custom lzw decoder would look like this my-custom-worker.js file:
import { addDecoder, getDecoder } from 'geotiff';
addDecoder(5, () => import ('./my-custom-lzw').then((m) => m.default));
self.addEventListener('message', async (e) => {
const { id, fileDirectory, buffer } = e.data;
const decoder = await getDecoder(fileDirectory);
const decoded = await decoder.decode(fileDirectory, buffer);
self.postMessage({ decoded, id }, [decoded]);
});
The way the above code is built into a worker by the createWorker() function
depends on the used bundler. For most bundlers, something like this will work:
function createWorker() {
return new Worker(new URL('./my-custom-worker.js', import.meta.url));
}
Pool for workers to decode chunks of the images.