forked from InsightSoftwareConsortium/itk-wasm
/
writeImageArrayBuffer.js
32 lines (29 loc) · 981 Bytes
/
writeImageArrayBuffer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import createWebworkerPromise from './createWebworkerPromise'
import config from './itkConfig'
import getTransferable from './getTransferable'
const writeImageArrayBuffer = (webWorker, useCompression, image, fileName, mimeType) => {
let worker = webWorker
return createWebworkerPromise('ImageIO', worker)
.then(({ webworkerPromise, worker: usedWorker }) => {
worker = usedWorker
const transferables = []
const transferable = getTransferable(image.data)
if (transferable) {
transferables.push(transferable)
}
return webworkerPromise.postMessage(
{
operation: 'writeImage',
name: fileName,
type: mimeType,
image: image,
useCompression: useCompression,
config: config
},
transferables
).then(function (arrayBuffer) {
return Promise.resolve({ arrayBuffer, webWorker: worker })
})
})
}
export default writeImageArrayBuffer