Skip to content

Commit a1daf8d

Browse files
committed
feat(readers): implement itkreadImageBlob
1 parent 7cc5501 commit a1daf8d

2 files changed

Lines changed: 32 additions & 4 deletions

File tree

src/itkreadImageBlob.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@ const config = require('./itkConfig.js')
66
const worker = new window.Worker(config.webWorkersPath + '/ImageIOWorker.js')
77
const promiseWorker = new PromiseWorker(worker)
88

9-
const readImageFile = (file) => {
10-
return PromiseFileReader.readAsArrayBuffer(file)
9+
/**
10+
* @param: blob Blob that contains the file contents
11+
* @param: fileName string that contains the file name
12+
* @param: mimeType optional mime-type string
13+
*/
14+
const readImageBlob = (blob, fileName, mimeType) => {
15+
return PromiseFileReader.readAsArrayBuffer(blob)
1116
.then(arrayBuffer => {
12-
return promiseWorker.postMessage({ name: file.name, type: file.type, buffer: arrayBuffer }, [arrayBuffer])
17+
return promiseWorker.postMessage({ name: fileName, type: mimeType, buffer: arrayBuffer }, [arrayBuffer])
1318
})
1419
}
1520

16-
module.exports = readImageFile
21+
module.exports = readImageBlob

test/Browser/itkreadImageTest.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const test = require('tape')
22
const PromiseFileReader = require('promise-file-reader')
33

44
const readImageArrayBuffer = require('itkreadImageArrayBuffer.js')
5+
const readImageBlob = require('itkreadImageBlob.js')
56
const readImageFile = require('itkreadImageFile.js')
67

78
const IntTypes = require('itkIntTypes.js')
@@ -44,6 +45,28 @@ test('readImageArrayBuffer reads an ArrayBuffer', t => {
4445
})
4546
})
4647

48+
test('readImageBlob reads an Blob', t => {
49+
return readImageBlob(cthead1SmallBlob, 'cthead1Small.png').then(function (image) {
50+
t.is(image.imageType.dimension, 2, 'dimension')
51+
t.is(image.imageType.componentType, IntTypes.UInt8, 'componentType')
52+
t.is(image.imageType.pixelType, PixelTypes.Scalar, 'pixelType')
53+
t.is(image.imageType.components, 1, 'components')
54+
t.is(image.origin[0], 0.0, 'origin[0]')
55+
t.is(image.origin[1], 0.0, 'origin[1]')
56+
t.is(image.spacing[0], 1.0, 'spacing[0]')
57+
t.is(image.spacing[1], 1.0, 'spacing[1]')
58+
t.is(getMatrixElement(image.direction, 0, 0), 1.0, 'direction (0, 0)')
59+
t.is(getMatrixElement(image.direction, 0, 1), 0.0, 'direction (0, 1)')
60+
t.is(getMatrixElement(image.direction, 1, 0), 0.0, 'direction (1, 0)')
61+
t.is(getMatrixElement(image.direction, 1, 1), 1.0, 'direction (1, 1)')
62+
t.is(image.size[0], 32, 'size[0]')
63+
t.is(image.size[1], 32, 'size[1]')
64+
t.is(image.buffer.length, 1024, 'buffer.length')
65+
t.is(image.buffer[512], 12, 'buffer[512]')
66+
t.end()
67+
})
68+
})
69+
4770
test('readImageFile reads a File', t => {
4871
return readImageFile(cthead1SmallFile).then(function (image) {
4972
t.is(image.imageType.dimension, 2, 'dimension')

0 commit comments

Comments
 (0)