ITK-Wasm in a Deno applicationΒΆ
An itk-convert
command line interface (CLI) example demonstrates how to use ITK-Wasm in a Deno application. Find the full example in the ITK-Wasm/examples/deno
directory of the GitHub repository.
This example assumes you are creating a Deno project. If you do not already have a deno.json
file, create one first.
Add packages to your projectβs imports:
{
"imports": {
"@itk-wasm/image-io": "npm:@itk-wasm/image-io",
"@itk-wasm/mesh-io": "npm:@itk-wasm/mesh-io",
"itk-wasm": "npm:itk-wasm"
}
}
This adds itk-wasm
and ITK-Wasm IO packages to the imports
section of your deno.json file:
{
"name": "itk-convert",
"version": "1.0.0",
"description": "Convert image or mesh files from one format to another.",
"exports": "./src/itk-convert.ts",
"tasks": {
"test": "deno run --allow-read --allow-write src/itk-convert.ts ../../docs/_static/logo.png ./logo.tif"
},
"imports": {
"@itk-wasm/image-io": "npm:@itk-wasm/image-io",
"@itk-wasm/mesh-io": "npm:@itk-wasm/mesh-io",
"itk-wasm": "npm:itk-wasm@1.0.0-b.188"
},
"compilerOptions": {
"strict": true
}
}
Next, call functions like readImageNode
or writeImageNode
.
For example,
import { readImageNode, writeImageNode } from '@itk-wasm/image-io'
import { readMeshNode, writeMeshNode, extensionToMeshIo } from '@itk-wasm/mesh-io'
import { getFileExtension } from 'itk-wasm'
const extension = getFileExtension(inputFile).toLowerCase()
const isMesh = extensionToMeshIo.has(extension)
try {
if (isMesh) {
const mesh = await readMeshNode(inputFile)
await writeMeshNode(mesh, outputFile)
} else {
const image = await readImageNode(inputFile)
await writeImageNode(image, outputFile)
}
} catch (error) {
console.error('Error during conversion:\n')
console.error(error)
}