Skip to content

Commit c8b89f2

Browse files
Fix local svs read order
1 parent 7e4cc46 commit c8b89f2

3 files changed

Lines changed: 7 additions & 5 deletions

File tree

packages/core/src/tile/factories/imageFactory.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ registerAssetFactory(
3030
const image = opts.token ? await fetch(opts.uri, {
3131
headers: { Authorization: `Bearer ${opts.token}` }
3232
}).then(response => response.arrayBuffer()).then(buffer => new File([buffer as BlobPart], "image.svs")).then(file => openslide.open(file)) : await openslide.open(opts.uri);
33-
const extent = await image.getLevelDimensions(0);
34-
const extent_max = await image.getLevelDimensions(await image.getLevelCount() - 1);
33+
const extent = await image.getLevelDimensions(await image.getLevelCount() - 1);
34+
const extent_max = await image.getLevelDimensions(0);
3535
ctx.sceneOptions.extents.encapsulateBoundingInfo(
3636
new BoundingInfo(new Vector3(0, 0, 0), new Vector3(extent[0], extent[1], 0))
3737
);
@@ -45,7 +45,7 @@ registerAssetFactory(
4545
id: opts.uri,
4646
uri: opts.uri,
4747
name: opts.name ?? "",
48-
root: constructImageTileset(await Promise.all(Array.from({ length: await image.getLevelCount() }, (_, i) => i).map(async (i) => {
48+
root: constructImageTileset(await Promise.all(Array.from({ length: await image.getLevelCount() }, (_, i) => i).reverse().map(async (i) => {
4949
const extent = await image.getLevelDimensions(i);
5050
return {
5151
width: [0, extent[0] - 1],

packages/core/src/tile/fetchers/svs_fetcher.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ export class SVSImageFetcher extends Fetcher<
4848
}, [buffer.buffer]);
4949
});
5050

51+
console.log(tile.id, region[0].min, region[1].min, level, width, height);
52+
5153
return new Promise((resolve, _) => {
5254
this.workerPool.callbacks.set(`${tile.id}_${options.nonce}`, resolve);
5355
});
@@ -113,7 +115,7 @@ export function constructImageTileset(
113115
const tile = new Tile<ImageDataContent, ImageContent>();
114116
tile.boundingInfo = getBoundingInfo(physicalExtent);
115117
tile.content.push({
116-
uri: `${idx}`,
118+
uri: `${levels.length - idx - 1}`,
117119
region: [
118120
{
119121
dimension: 'x',

packages/core/src/tile/worker/loaders/svsImageLoader.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export async function svsImageRequest(
1616
payload: SVSImagePayload
1717
) {
1818

19-
const sourceAxes = ["Y", "X", "C"];
19+
const sourceAxes = ["X", "Y", "C"];
2020
const axes = new Axes(sourceAxes, ['C', 'Y', 'X']);
2121

2222
const channelSlices = new Map<number, any>();

0 commit comments

Comments
 (0)