Files
config-pacs-docker/nv/html/dwv/decoders/rii-mango/decode-jpegloss.js
2025-02-26 14:49:25 +07:00

38 lines
1.0 KiB
JavaScript

/**
* JPEG Lossless decoder worker.
*/
// Do not warn if these variables were not defined before.
/* global importScripts, self, jpeg */
importScripts('lossless-min.js');
self.addEventListener('message', function (event) {
// bytes per element
var bpe = event.data.bitsAllocated / 8;
// decode DICOM buffer
var buf = new Uint8Array(event.data.buffer);
var decoder = new jpeg.lossless.Decoder();
var decoded = decoder.decode(buf.buffer, 0, buf.buffer.byteLength, bpe);
// post decoded data
var res = null;
if (event.data.bitsAllocated === 8) {
if (event.data.isSigned) {
res = new Int8Array(decoded.buffer);
}
else {
res = new Uint8Array(decoded.buffer);
}
}
else if (event.data.bitsAllocated === 16) {
if (event.data.isSigned) {
res = new Int16Array(decoded.buffer);
}
else {
res = new Uint16Array(decoded.buffer);
}
}
self.postMessage([res]);
}, false);