Skip to content

Thinking: Should OME-Zarrs enable native thumbnails? #43

@lubianat

Description

@lubianat

https://github.com/BioNGFF/ome-zarr.js is valueable for the customizability, but similar to how OMERO sets default thumbnails, OME-Zarrs could come with default thumbnails with a pre-defined size

In the directions of a super light addition such as

OME-Zarr files MAY have a "thumbnail" folder. If a "thumbnail" folder is present, it MUST contain a single 2D RGB image named "thumbnail_48.jpg" of 48 x 48 pixels. Thumbnails MUST be squared. Other sizes MAY be present, in "thumbnail_X.jpg", where X indicates the size of the axes in pixels.

(based on DEFAULT_X_WIDTH at https://github.com/ome/omero-server/blob/master/src/main/java/ome/services/ThumbnailBean.java)

And probably no changes to the OME-metadata, so there is no confusion. A bit batteries included/opinionated way, as this would be a secondary feature. If extra customizability needed, one can resort to building the thumbnails with ome-zarr.js.

The thumbnail should be in widely-supported format like PNG or JPG. OME-TIF could be fun, but a lot of duplication.

1

- zarr.json
- 0
- 1
- 2
- thumbnail 
     - thumbnail_48.jpg

2

- zarr.json
- 0
- 1
- 2
- thumbnail_48.jpg

pros:

  • tools that depend on thumbnails (e.g. BFF, the 2024 challenge, OMERO etc) would have a native way to getting that info (less calls, better caching, less dependences on libs)

  • OME-Zarrs often are not optimized for thumbnail generation. Having a separate "thumbnail" field would reduce the need for considering that when picking the best strategy for chunking/sharding/multiscaling.

  • if thumbnail is, say, PNG/JPG/(OME-)TIF, Zarr-ignorant tools could have a way to display something visual

cons:

  • extra specs
  • less use cases for ome-zarr.js
  • mix of formats, possible confusion
  • even if optional, one more thing for tooling to support
    ...

Some relevant links:

https://forum.image.sc/t/how-are-the-thumbnails-generated-on-omero/91865/2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions