ome-zarr.js
Version:
Some JavaScript utils for simple rendering of OME-Zarr images
147 lines (127 loc) • 3.81 kB
TypeScript
import * as zarr from 'zarrita';
/**
* Model for an element of `Multiscale.axes`.
*
* See https://ngff.openmicroscopy.org/0.4/#axes-md.
*/
export declare interface Axis {
name: string;
type?: string | null;
unit?: unknown;
[k: string]: unknown;
}
/**
* A single omero channel.
*/
export declare interface Channel {
color: string;
window: Window_2;
lut?: string;
active?: boolean;
inverted?: boolean;
[k: string]: unknown;
}
/**
* An element of Multiscale.datasets.
*/
export declare interface Dataset {
path: string;
coordinateTransformations: [unknown] | [unknown, unknown];
[k: string]: unknown;
}
export declare function getArray(store: zarr.FetchStore, path: string, zarr_version: 2 | 3 | undefined): Promise<zarr.Array<any>>;
export declare function getLuts(): {
name: string;
png: string;
}[];
export declare function getMinMaxValues(chunk2d: any): [number, number];
export declare function getMultiscale(store: zarr.FetchStore): Promise<{
multiscale: Multiscale;
omero: Omero | null | undefined;
zarr_version: 2 | 3;
}>;
export declare function getMultiscaleWithArray(store: zarr.FetchStore | string, datasetIndex?: number): Promise<{
arr: zarr.Array<any>;
shapes: number[][] | undefined;
multiscale: Multiscale;
omero: Omero | null | undefined;
scales: number[][];
zarr_version: 2 | 3;
}>;
export declare function getSlices(activeChannelIndices: number[], shape: number[], axesNames: string[], indices: {
[k: string]: number | [number, number] | undefined;
}): (number | Slice | undefined)[][];
/**
* Model for the metadata of OME-Zarr data.
*
* See https://ngff.openmicroscopy.org/0.4/#image-layout.
*/
export declare interface ImageAttrs {
/**
* The multiscale datasets for this image
*
* @minItems 1
*/
multiscales: [Multiscale, ...Multiscale[]];
omero?: Omero | null;
[k: string]: unknown;
}
export declare const LUTS: {
path: string;
name: string;
rgb: number[][];
}[];
/**
* An element of multiscales metadata.
*/
export declare interface Multiscale {
axes: Axis[];
/**
* @minItems 1
*/
datasets: [Dataset, ...Dataset[]];
version?: "0.4" | null;
coordinateTransformations?: [unknown] | [unknown, unknown] | null;
metadata?: {
[k: string]: unknown;
};
name?: unknown;
type?: {
[k: string]: unknown;
};
[k: string]: unknown;
}
/**
* omero model.
*/
export declare interface Omero {
channels: Channel[];
rdefs: {
defaultT: number;
defaultZ: number;
model: "greyscale" | "color";
};
[k: string]: unknown;
}
export declare function renderImage(arr: zarr.Array<any>, axes: Axis[], omero: Omero | null | undefined, sliceIndices?: {
[k: string]: (number | [number, number] | undefined);
}, autoBoost?: boolean): Promise<string>;
export declare function renderThumbnail(store: zarr.FetchStore | string, targetSize?: number | undefined, autoBoost?: boolean, maxSize?: number): Promise<string>;
export declare function renderTo8bitArray(ndChunks: any, minMaxValues: Array<[number, number]>, colors: Array<[number, number, number]>, luts: Array<string | undefined> | undefined, inverteds: Array<boolean> | undefined, autoBoost?: boolean): Uint8ClampedArray;
declare interface Slice {
start: number | null;
stop: number | null;
step: number | null;
}
/**
* A single window.
*/
declare interface Window_2 {
max: number;
min: number;
start?: number;
end?: number;
[k: string]: unknown;
}
export { Window_2 as Window }
export { }