@fideus-labs/fiff 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,319 @@
1
+ <!-- SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC -->
2
+ <!-- SPDX-License-Identifier: MIT -->
3
+ <p align="center">
4
+ <strong>fiff</strong>
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://github.com/fideus-labs/fiff/actions/workflows/ci.yml"><img src="https://github.com/fideus-labs/fiff/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
9
+ <a href="https://www.npmjs.com/package/@fideus-labs/fiff"><img src="https://img.shields.io/npm/v/@fideus-labs/fiff" alt="npm version" /></a>
10
+ <a href="https://github.com/fideus-labs/fiff/blob/main/LICENSE.txt"><img src="https://img.shields.io/npm/l/@fideus-labs/fiff" alt="license" /></a>
11
+ </p>
12
+
13
+ <p align="center">
14
+ Read and write <a href="https://docs.openmicroscopy.org/ome-model/latest/ome-tiff/">OME-TIFF</a> files through a <a href="https://github.com/manzt/zarrita.js">zarrita.js</a> Zarr store following the <a href="https://ngff.openmicroscopy.org/0.5/">OME-Zarr v0.5</a> data model.
15
+ </p>
16
+
17
+ ## ✨ Features
18
+
19
+ ### Reading
20
+
21
+ - 🚀 **Lazy HTTP range requests** -- Chunk data is fetched on demand via
22
+ geotiff.js `readRasters()`, no full file download needed
23
+ - 📐 **OME-XML support** -- Parses OME-XML metadata for dimensions, channels,
24
+ physical units, and all 6 DimensionOrder permutations
25
+ - 🔍 **Pyramid detection** -- Automatically discovers multi-resolution levels
26
+ via SubIFDs (modern), flat IFDs (legacy), or COG overviews
27
+ - 🧩 **Edge-chunk zero-padding** -- Boundary chunks are automatically padded to
28
+ full tile size for correct Zarr consumption
29
+ - 🔗 **zarrita.js compatible** -- Implements the `AsyncReadable` interface;
30
+ use directly with `zarr.open()` from zarrita.js
31
+ - 📋 **OME-Zarr v0.5 output** -- Generates Zarr v3 metadata with
32
+ `ome.multiscales` and `ome.omero` attributes
33
+
34
+ ### Writing
35
+
36
+ - 📝 **OME-TIFF generation** -- Convert ngff-zarr `Multiscales` objects to
37
+ valid OME-TIFF files with embedded OME-XML metadata
38
+ - 🔻 **Full pyramid support** -- Multi-resolution levels are written as SubIFDs,
39
+ matching the modern OME-TIFF pyramid convention
40
+ - 🗜️ **Deflate compression** -- Optional zlib/deflate compression for smaller
41
+ files, compatible with all major TIFF readers
42
+ - 📐 **5D support** -- Handles all dimension orders (XYZCT, XYZTC, etc.) and
43
+ arbitrary combinations of T, C, Z, Y, X axes
44
+
45
+ ## 📦 Installation
46
+
47
+ ```bash
48
+ npm install @fideus-labs/fiff
49
+ ```
50
+
51
+ For write support, also install the optional peer dependency:
52
+
53
+ ```bash
54
+ npm install @fideus-labs/ngff-zarr
55
+ ```
56
+
57
+ ## ⚡ Usage
58
+
59
+ ### Reading: Open an OME-TIFF as a Zarr store
60
+
61
+ #### From a remote URL
62
+
63
+ ```typescript
64
+ import { TiffStore } from "@fideus-labs/fiff";
65
+ import * as zarr from "zarrita";
66
+
67
+ const store = await TiffStore.fromUrl("https://example.com/image.ome.tif");
68
+ const group = await zarr.open(store as unknown as zarr.Readable, { kind: "group" });
69
+
70
+ // Open the full-resolution array (level 0)
71
+ const arr = await zarr.open(group.resolve("0"), { kind: "array" });
72
+ const chunk = await zarr.get(arr);
73
+
74
+ console.log(chunk.shape); // e.g. [1, 3, 1, 512, 512]
75
+ console.log(chunk.data); // Float32Array, Uint16Array, etc.
76
+ ```
77
+
78
+ #### From an ArrayBuffer
79
+
80
+ ```typescript
81
+ const response = await fetch("https://example.com/image.tif");
82
+ const buffer = await response.arrayBuffer();
83
+ const store = await TiffStore.fromArrayBuffer(buffer);
84
+ ```
85
+
86
+ #### From a File / Blob
87
+
88
+ ```typescript
89
+ const file = document.querySelector("input[type=file]").files[0];
90
+ const store = await TiffStore.fromBlob(file);
91
+ ```
92
+
93
+ #### From an existing GeoTIFF instance
94
+
95
+ ```typescript
96
+ import { fromUrl } from "geotiff";
97
+
98
+ const tiff = await fromUrl("https://example.com/image.tif");
99
+ const store = await TiffStore.fromGeoTIFF(tiff);
100
+ ```
101
+
102
+ #### Accessing store metadata
103
+
104
+ ```typescript
105
+ const store = await TiffStore.fromUrl("https://example.com/image.ome.tif");
106
+
107
+ store.levels; // number of resolution levels
108
+ store.dataType; // "uint16", "float32", etc.
109
+ store.dimensionNames; // ["t", "c", "z", "y", "x"]
110
+ store.getShape(0); // full-res shape, e.g. [1, 3, 1, 2048, 2048]
111
+ store.getShape(1); // level 1 shape, e.g. [1, 3, 1, 1024, 1024]
112
+ store.ome; // parsed OME-XML image metadata (if present)
113
+ store.pyramidInfo; // pyramid structure details
114
+ ```
115
+
116
+ ### Writing: Convert ngff-zarr Multiscales to OME-TIFF
117
+
118
+ `toOmeTiff()` takes an ngff-zarr `Multiscales` object and returns a complete
119
+ OME-TIFF file as an `ArrayBuffer`.
120
+
121
+ #### Basic write
122
+
123
+ ```typescript
124
+ import { toOmeTiff } from "@fideus-labs/fiff";
125
+ import {
126
+ createNgffImage,
127
+ createAxis,
128
+ createDataset,
129
+ createMetadata,
130
+ createMultiscales,
131
+ } from "@fideus-labs/ngff-zarr";
132
+ import * as zarr from "zarrita";
133
+
134
+ // 1. Create an ngff-zarr image
135
+ const image = await createNgffImage(
136
+ [], // no parent images
137
+ [512, 512], // shape: [y, x]
138
+ "uint16", // data type
139
+ ["y", "x"], // dimension names
140
+ { y: 0.5, x: 0.5 }, // pixel spacing (micrometers)
141
+ { y: 0.0, x: 0.0 }, // origin offsets
142
+ "my-image",
143
+ );
144
+
145
+ // 2. Populate pixel data
146
+ const data = new Uint16Array(512 * 512);
147
+ for (let i = 0; i < data.length; i++) data[i] = i % 65536;
148
+ await zarr.set(image.data, null, {
149
+ data,
150
+ shape: [512, 512],
151
+ stride: [512, 1],
152
+ });
153
+
154
+ // 3. Build the Multiscales object
155
+ const axes = [
156
+ createAxis("y", "space", "micrometer"),
157
+ createAxis("x", "space", "micrometer"),
158
+ ];
159
+ const datasets = [createDataset("0", [0.5, 0.5], [0.0, 0.0])];
160
+ const metadata = createMetadata(axes, datasets, "my-image");
161
+ const multiscales = createMultiscales([image], metadata);
162
+
163
+ // 4. Write to OME-TIFF
164
+ const buffer = await toOmeTiff(multiscales);
165
+
166
+ // Save to disk (Node.js / Bun)
167
+ await Bun.write("output.ome.tif", buffer);
168
+ ```
169
+
170
+ #### Write options
171
+
172
+ ```typescript
173
+ const buffer = await toOmeTiff(multiscales, {
174
+ compression: "deflate", // "deflate" (default) or "none"
175
+ compressionLevel: 6, // 1-9, default 6 (only for deflate)
176
+ dimensionOrder: "XYZCT", // IFD layout order, default "XYZCT"
177
+ imageName: "my-image", // name in OME-XML metadata
178
+ creator: "my-app", // creator string in OME-XML
179
+ });
180
+ ```
181
+
182
+ #### Multi-resolution pyramids
183
+
184
+ When the `Multiscales` object contains multiple images (resolution levels),
185
+ all sub-resolution levels are written as SubIFDs:
186
+
187
+ ```typescript
188
+ const fullRes = await createNgffImage([], [1024, 1024], "uint16", ["y", "x"], ...);
189
+ const halfRes = await createNgffImage([], [512, 512], "uint16", ["y", "x"], ...);
190
+ // ... populate both images with zarr.set() ...
191
+
192
+ const datasets = [
193
+ createDataset("0", [0.5, 0.5], [0.0, 0.0]),
194
+ createDataset("1", [1.0, 1.0], [0.0, 0.0]),
195
+ ];
196
+ const metadata = createMetadata(axes, datasets, "pyramid");
197
+ const multiscales = createMultiscales([fullRes, halfRes], metadata);
198
+
199
+ const buffer = await toOmeTiff(multiscales);
200
+ // Result: OME-TIFF with full-res IFDs + half-res SubIFDs
201
+ ```
202
+
203
+ #### Round-trip: write then read back
204
+
205
+ ```typescript
206
+ import { toOmeTiff, TiffStore } from "@fideus-labs/fiff";
207
+ import * as zarr from "zarrita";
208
+
209
+ const buffer = await toOmeTiff(multiscales);
210
+ const store = await TiffStore.fromArrayBuffer(buffer);
211
+ const group = await zarr.open(store as unknown as zarr.Readable, { kind: "group" });
212
+ const arr = await zarr.open(group.resolve("0"), { kind: "array" });
213
+ const result = await zarr.get(arr);
214
+ // result.data contains the original pixel values
215
+ ```
216
+
217
+ ## 🏭 Read API
218
+
219
+ ### Factory Methods
220
+
221
+ | Method | Description |
222
+ | --------------------------------- | ---------------------------------------------- |
223
+ | `TiffStore.fromUrl(url, opts?)` | Open from a remote URL (HTTP range requests) |
224
+ | `TiffStore.fromArrayBuffer(buf)` | Open from an in-memory ArrayBuffer |
225
+ | `TiffStore.fromBlob(blob)` | Open from a Blob or File |
226
+ | `TiffStore.fromGeoTIFF(tiff)` | Open from an already-opened GeoTIFF instance |
227
+
228
+ ### Options
229
+
230
+ All factory methods accept an optional `TiffStoreOptions` object:
231
+
232
+ | Option | Type | Default | Description |
233
+ | --------- | ------------------------ | ----------- | ----------------------------------------------- |
234
+ | `offsets` | `number[]` | `undefined` | Pre-computed IFD byte offsets for O(1) access |
235
+ | `headers` | `Record<string, string>` | `undefined` | Additional HTTP headers for remote TIFF requests |
236
+
237
+ ### Public Accessors
238
+
239
+ | Accessor | Type | Description |
240
+ | --------------------- | -------------- | ---------------------------------- |
241
+ | `store.levels` | `number` | Number of resolution levels |
242
+ | `store.dataType` | `ZarrDataType` | Zarr data type string |
243
+ | `store.ome` | `OmeImage[]` | Parsed OME-XML images (if present) |
244
+ | `store.pyramidInfo` | `PyramidInfo` | Pyramid structure details |
245
+ | `store.dimensionNames`| `string[]` | Dimension names (e.g. `["t", "c", "z", "y", "x"]`) |
246
+ | `store.getShape(l)` | `number[]` | Shape for resolution level `l` |
247
+ | `store.getChunkShape(l)` | `number[]` | Chunk shape for resolution level `l` |
248
+
249
+ ## 📝 Write API
250
+
251
+ ### `toOmeTiff(multiscales, options?)`
252
+
253
+ | Parameter | Type | Description |
254
+ | ------------- | ------------- | ------------------------------------------------------ |
255
+ | `multiscales` | `Multiscales` | ngff-zarr Multiscales object with populated pixel data |
256
+ | `options` | `WriteOptions`| Optional writer configuration |
257
+
258
+ **Returns:** `Promise<ArrayBuffer>` -- a complete OME-TIFF file.
259
+
260
+ ### WriteOptions
261
+
262
+ | Option | Type | Default | Description |
263
+ | ------------------ | ---------------------- | ----------- | ---------------------------------------- |
264
+ | `compression` | `"none" \| "deflate"` | `"deflate"` | Pixel data compression |
265
+ | `compressionLevel` | `number` | `6` | Deflate level 1-9 (higher = smaller) |
266
+ | `dimensionOrder` | `string` | `"XYZCT"` | IFD plane layout order |
267
+ | `imageName` | `string` | `"image"` | Image name in OME-XML |
268
+ | `creator` | `string` | `"fiff"` | Creator string in OME-XML |
269
+
270
+ ## 🛠️ Development
271
+
272
+ ### 📋 Prerequisites
273
+
274
+ - [Bun](https://bun.sh/) >= 1.0
275
+
276
+ ### 🔧 Setup
277
+
278
+ ```bash
279
+ git clone https://github.com/fideus-labs/fiff.git
280
+ cd fiff
281
+ bun install
282
+ ```
283
+
284
+ ### 🗂️ Project Structure
285
+
286
+ ```
287
+ src/
288
+ index.ts # Public API exports
289
+ tiff-store.ts # TiffStore class (AsyncReadable implementation)
290
+ metadata.ts # Zarr v3 / OME-Zarr 0.5 metadata synthesis
291
+ ome-xml.ts # OME-XML parser (dimensions, channels, DimensionOrder)
292
+ ifd-indexer.ts # IFD-to-pyramid-level mapping (SubIFD/legacy/COG)
293
+ chunk-reader.ts # Pixel data reading via geotiff.js readRasters
294
+ dtypes.ts # TIFF ↔ Zarr data_type mapping
295
+ utils.ts # Key parsing, pixel window computation, encoding
296
+ write.ts # High-level toOmeTiff() writer
297
+ tiff-writer.ts # Low-level TIFF binary builder (IFDs, SubIFDs, deflate)
298
+ ome-xml-writer.ts # OME-XML generation from Multiscales metadata
299
+ test/
300
+ fixtures.ts # Test TIFF generation helpers
301
+ *.test.ts # 175 tests across 11 files
302
+ ```
303
+
304
+ ### 📝 Commands
305
+
306
+ | Command | Description |
307
+ | -------------------- | ---------------------------------------- |
308
+ | `bun run build` | Build to `dist/` (ESM + declarations) |
309
+ | `bun test` | Run all tests |
310
+ | `bun run typecheck` | Type-check the full project |
311
+
312
+ ## 🤝 Contributing
313
+
314
+ Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for
315
+ setup instructions, code style guidelines, and the pull request workflow.
316
+
317
+ ## 📄 License
318
+
319
+ [MIT](LICENSE.txt) -- Copyright (c) Fideus Labs LLC
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-reader.d.ts","sourceRoot":"","sources":["../src/chunk-reader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,CACR,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,YAAY,CAAC,EAC1B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAoDrB"}
1
+ {"version":3,"file":"chunk-reader.d.ts","sourceRoot":"","sources":["../src/chunk-reader.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,CACR,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,YAAY,CAAC,EAC1B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAoDrB"}
@@ -1,7 +1,5 @@
1
- /**
2
- * Chunk reader: reads pixel data from a GeoTIFFImage for a specific chunk,
3
- * returning raw bytes suitable for a Zarr store response.
4
- */
1
+ // SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
2
+ // SPDX-License-Identifier: MIT
5
3
  import { bytesPerElement } from "./dtypes.js";
6
4
  import { computePixelWindow, encodeChunkBytes } from "./utils.js";
7
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-reader.js","sourceRoot":"","sources":["../src/chunk-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chunk-reader.js","sourceRoot":"","sources":["../src/chunk-reader.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;AAS/B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGlE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAG0B,EAC1B,GAAmB,EACnB,KAAa,EACb,MAAc,EACd,MAAc,EACd,WAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,WAAmB,EACnB,KAAmB,EACnB,MAAoB;IAEpB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,kBAAkB,CACnD,MAAM,EACN,MAAM,EACN,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,CACZ,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;IACjC,MAAM,YAAY,GAAG,MAAM,GAAG,GAAG,CAAC;IAElC,IAAI,WAAW,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QAC1C,iEAAiE;QACjE,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,UAAU,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEzC,sCAAsC;IACtC,iDAAiD;IACjD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;QACzC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC;QAClC,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,iDAAiD;QAC/D,MAAM;KACP,CAAC,CAAC;IAEH,0DAA0D;IAC1D,MAAM,SAAS,GAAG,UAAwC,CAAC;IAC3D,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,gBAAgB,GAAG,UAAU,GAAG,WAAW,CAAC;IAElD,qDAAqD;IACrD,sEAAsE;IACtE,6DAA6D;IAC7D,IAAI,WAAW,GAAG,UAAU,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;QAC3D,OAAO,YAAY,CACjB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CACnB,IAAqB,EACrB,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,UAAkB;IAElB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC1C,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAE1C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC;QACpC,MAAM,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/dtypes.d.ts CHANGED
@@ -33,6 +33,21 @@ export declare function tiffDtypeToZarr(sampleFormat: number, bitsPerSample: num
33
33
  export declare function omePixelTypeToZarr(omeType: string): ZarrDataType;
34
34
  /** Number of bytes per element for a given Zarr data_type. */
35
35
  export declare function bytesPerElement(dtype: ZarrDataType): number;
36
+ /**
37
+ * Map a Zarr v3 data_type string to an OME-XML pixel Type string.
38
+ * Reverse of omePixelTypeToZarr.
39
+ */
40
+ export declare function zarrToOmePixelType(dtype: ZarrDataType): string;
41
+ /** TIFF tag values for a given Zarr data_type. */
42
+ export interface TiffDtypeInfo {
43
+ sampleFormat: number;
44
+ bitsPerSample: number;
45
+ }
46
+ /**
47
+ * Map a Zarr v3 data_type string to TIFF SampleFormat + BitsPerSample.
48
+ * Reverse of tiffDtypeToZarr.
49
+ */
50
+ export declare function zarrToTiffDtype(dtype: ZarrDataType): TiffDtypeInfo;
36
51
  /**
37
52
  * Get the appropriate TypedArray constructor for a Zarr data_type.
38
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dtypes.d.ts","sourceRoot":"","sources":["../src/dtypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yCAAyC;AACzC,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd,oCAAoC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,YAAY,CAyCd;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAiBhE;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAY3D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,GAClB;IACD,KAAK,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAC1D,UAAU,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,GACV,YAAY,GACZ,YAAY,CAAC;CAClB,CAmBA"}
1
+ {"version":3,"file":"dtypes.d.ts","sourceRoot":"","sources":["../src/dtypes.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,yCAAyC;AACzC,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd,oCAAoC;AACpC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,YAAY,CAyCd;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAiBhE;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAY3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAY9D;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAYlE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,YAAY,GAClB;IACD,KAAK,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAC1D,UAAU,GACV,SAAS,GACT,WAAW,GACX,UAAU,GACV,WAAW,GACX,UAAU,GACV,YAAY,GACZ,YAAY,CAAC;CAClB,CAmBA"}
package/dist/dtypes.js CHANGED
@@ -1,14 +1,5 @@
1
- /**
2
- * TIFF sample format and bit depth to Zarr v3 data_type mapping.
3
- *
4
- * TIFF SampleFormat values:
5
- * 1 = unsigned integer
6
- * 2 = signed integer (two's complement)
7
- * 3 = IEEE floating point
8
- *
9
- * Zarr v3 data_type strings: int8, int16, int32, uint8, uint16, uint32,
10
- * float32, float64, etc.
11
- */
1
+ // SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
2
+ // SPDX-License-Identifier: MIT
12
3
  /** TIFF SampleFormat tag values. */
13
4
  export const SAMPLE_FORMAT_UINT = 1;
14
5
  export const SAMPLE_FORMAT_INT = 2;
@@ -96,6 +87,40 @@ export function bytesPerElement(dtype) {
96
87
  };
97
88
  return map[dtype];
98
89
  }
90
+ /**
91
+ * Map a Zarr v3 data_type string to an OME-XML pixel Type string.
92
+ * Reverse of omePixelTypeToZarr.
93
+ */
94
+ export function zarrToOmePixelType(dtype) {
95
+ const map = {
96
+ int8: "int8",
97
+ int16: "int16",
98
+ int32: "int32",
99
+ uint8: "uint8",
100
+ uint16: "uint16",
101
+ uint32: "uint32",
102
+ float32: "float",
103
+ float64: "double",
104
+ };
105
+ return map[dtype];
106
+ }
107
+ /**
108
+ * Map a Zarr v3 data_type string to TIFF SampleFormat + BitsPerSample.
109
+ * Reverse of tiffDtypeToZarr.
110
+ */
111
+ export function zarrToTiffDtype(dtype) {
112
+ const map = {
113
+ uint8: { sampleFormat: SAMPLE_FORMAT_UINT, bitsPerSample: 8 },
114
+ uint16: { sampleFormat: SAMPLE_FORMAT_UINT, bitsPerSample: 16 },
115
+ uint32: { sampleFormat: SAMPLE_FORMAT_UINT, bitsPerSample: 32 },
116
+ int8: { sampleFormat: SAMPLE_FORMAT_INT, bitsPerSample: 8 },
117
+ int16: { sampleFormat: SAMPLE_FORMAT_INT, bitsPerSample: 16 },
118
+ int32: { sampleFormat: SAMPLE_FORMAT_INT, bitsPerSample: 32 },
119
+ float32: { sampleFormat: SAMPLE_FORMAT_FLOAT, bitsPerSample: 32 },
120
+ float64: { sampleFormat: SAMPLE_FORMAT_FLOAT, bitsPerSample: 64 },
121
+ };
122
+ return map[dtype];
123
+ }
99
124
  /**
100
125
  * Get the appropriate TypedArray constructor for a Zarr data_type.
101
126
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dtypes.js","sourceRoot":"","sources":["../src/dtypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dtypes.js","sourceRoot":"","sources":["../src/dtypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ifd-indexer.d.ts","sourceRoot":"","sources":["../src/ifd-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,CAAC,CA0GtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,WAAW,EACpB,SAAS,GAAE,MAAU,EACrB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CA6C/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAO/D"}
1
+ {"version":3,"file":"ifd-indexer.d.ts","sourceRoot":"","sources":["../src/ifd-indexer.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,CAAC,CA0GtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,WAAW,EACpB,SAAS,GAAE,MAAU,EACrB,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CA6C/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAO/D"}
@@ -1,10 +1,5 @@
1
- /**
2
- * IFD indexer: maps (c, z, t, resolution level) to a GeoTIFFImage.
3
- *
4
- * Handles both modern (SubIFD-based) and legacy (flat IFD chain) pyramid
5
- * storage strategies, as well as optional pre-computed IFD byte offsets
6
- * for fast random access.
7
- */
1
+ // SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
2
+ // SPDX-License-Identifier: MIT
8
3
  import { getIfdIndex } from "./ome-xml.js";
9
4
  /**
10
5
  * Determine the pyramid structure of a TIFF by inspecting the first image.
@@ -1 +1 @@
1
- {"version":3,"file":"ifd-indexer.js","sourceRoot":"","sources":["../src/ifd-indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifd-indexer.js","sourceRoot":"","sources":["../src/ifd-indexer.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;AAY/B,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAqB3D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAa,EACb,SAAiB,EACjB,cAAsB;IAEtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAE1C,iEAAiE;IACjE,IAAI,OAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAChE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAwB,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,0CAA0C;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;QAE7B,0CAA0C;QAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAO,IAAY,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC7D,MAAM,QAAQ,GACZ,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC;oBAC3C,GAAG,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3C,MAAM,SAAS,GACb,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC;oBAC5C,GAAG,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,mCAAmC;gBACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACxD,CAAC;IAED,kEAAkE;IAClE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,SAAS,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;QAE7B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,GAAG,GAAG,cAAc,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACzD,CAAC;IAED,gEAAgE;IAChE,uCAAuC;IACvC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC1B,8CAA8C;gBAC9C,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;oBACrE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,KAAK;oBAClB,MAAM;oBACN,OAAO;iBACR,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IAED,4BAA4B;IAC5B,OAAO;QACL,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,CAAC,SAAS,CAAC;QACnB,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAa,EACb,MAAiB,EACjB,OAAoB,EACpB,YAAoB,CAAC,EACrB,OAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0C,CAAC;IACnE,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAElE,OAAO,KAAK,EAAE,GAAmB,EAAE,KAAa,EAAyB,EAAE;QACzE,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;QAE5C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,0CAA0C;YAC1C,OAAO,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,oEAAoE;YACpE,MAAM,QAAQ,GAAG,OAAO,WAAW,IAAI,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,GAAG,CACV,QAAQ,EACR,CAAC,KAAK,IAAI,EAAE;oBACV,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;oBAC7D,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,SAAS,CACxD,SAAS,CACV,CAAC;oBACF,MAAM,OAAO,GAAa,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;wBACjD,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAA+B,CAAC,CAAC;oBAChD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACxC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,CACb,gBAAgB,KAAK,GAAG,CAAC,kBAAkB,OAAO,CAAC,MAAM,aAAa,CACvE,CAAC;oBACJ,CAAC;oBACD,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC9C,CAAC,CAAC,EAAE,CACL,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QACjC,CAAC;QAED,0DAA0D;QAC1D,uCAAuC;QACvC,MAAM,QAAQ,GAAG,WAAW,GAAG,KAAK,GAAG,cAAc,CAAC;QACtD,OAAO,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAa,EACb,OAAkB;IAElB,OAAO,KAAK,EACV,IAAoB,EACpB,KAAa,EACU,EAAE;QACzB,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,KAAK,UAAU,QAAQ,CACrB,IAAa,EACb,KAAa,EACb,OAAkB;IAElB,IAAI,OAAO,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,4CAA4C;QAC5C,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,IAAa,EACb,UAAkB;IAElB,4EAA4E;IAC5E,MAAM,GAAG,GAAG,MAAO,IAAY,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACjE,+CAA+C;IAC/C,gEAAgE;IAChE,MAAM,iBAAiB,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAkB,CAAC;IACtE,OAAO,IAAI,iBAAiB,CAC1B,GAAG,CAAC,aAAa,IAAI,GAAG,EACvB,IAAY,CAAC,YAAY,EACzB,IAAY,CAAC,KAAK,EAClB,IAAY,CAAC,MAAM,CACrB,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -20,7 +20,10 @@ export type { ZarrDataType } from "./dtypes.js";
20
20
  export type { OmeImage, OmePixels, OmeChannel, DimensionOrder } from "./ome-xml.js";
21
21
  export type { PyramidInfo, PlaneSelection } from "./ifd-indexer.js";
22
22
  export type { OmeAxis, OmeMultiscale, OmeDataset, OmeCoordinateTransformation, OmeroMetadata, OmeroChannel, ZarrGroupMetadata, ZarrArrayMetadata, } from "./metadata.js";
23
+ export { toOmeTiff, type WriteOptions } from "./write.js";
24
+ export { buildOmeXml, type OmeXmlWriterOptions, type DimensionInfo } from "./ome-xml-writer.js";
25
+ export { buildTiff, makeImageTags, compressDeflate, type WritableIfd, type TiffTag, type BuildTiffOptions, } from "./tiff-writer.js";
23
26
  export { parseOmeXml, isOmeXml, getIfdIndex } from "./ome-xml.js";
24
- export { tiffDtypeToZarr, omePixelTypeToZarr, bytesPerElement } from "./dtypes.js";
27
+ export { tiffDtypeToZarr, omePixelTypeToZarr, zarrToOmePixelType, zarrToTiffDtype, bytesPerElement, type TiffDtypeInfo, } from "./dtypes.js";
25
28
  export { parseStoreKey, computePixelWindow } from "./utils.js";
26
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACpF,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,YAAY,EACV,OAAO,EACP,aAAa,EACb,UAAU,EACV,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACpF,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,YAAY,EACV,OAAO,EACP,aAAa,EACb,UAAU,EACV,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
2
+ // SPDX-License-Identifier: MIT
1
3
  /**
2
4
  * @fideus-labs/fiff
3
5
  *
@@ -16,8 +18,12 @@
16
18
  * ```
17
19
  */
18
20
  export { TiffStore } from "./tiff-store.js";
21
+ // Writer
22
+ export { toOmeTiff } from "./write.js";
23
+ export { buildOmeXml } from "./ome-xml-writer.js";
24
+ export { buildTiff, makeImageTags, compressDeflate, } from "./tiff-writer.js";
19
25
  // Export utilities that may be useful
20
26
  export { parseOmeXml, isOmeXml, getIfdIndex } from "./ome-xml.js";
21
- export { tiffDtypeToZarr, omePixelTypeToZarr, bytesPerElement } from "./dtypes.js";
27
+ export { tiffDtypeToZarr, omePixelTypeToZarr, zarrToOmePixelType, zarrToTiffDtype, bytesPerElement, } from "./dtypes.js";
22
28
  export { parseStoreKey, computePixelWindow } from "./utils.js";
23
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAiBnE,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;AAE/B;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AAiBnE,SAAS;AACT,OAAO,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAgD,MAAM,qBAAqB,CAAC;AAChG,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,GAIhB,MAAM,kBAAkB,CAAC;AAE1B,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
package/dist/metadata.js CHANGED
@@ -1,7 +1,5 @@
1
- /**
2
- * Metadata synthesis: generate Zarr v3 (OME-Zarr 0.5) metadata from
3
- * TIFF image properties and OME-XML.
4
- */
1
+ // SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
2
+ // SPDX-License-Identifier: MIT
5
3
  import { normalizeUnit } from "./ome-xml.js";
6
4
  // ---------- Builders ----------
7
5
  /** Default colors for channels (RGBA hex without alpha). */
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}