Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/bffile/_biofile.py
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,9 @@ def open(self) -> Self:
r = jimport("loci.formats.ImageReader")()
r.setFlattenedResolutions(False)

ChannelFiller = jimport("loci.formats.ChannelFiller")
r = ChannelFiller(r)

if self._memoize > 0:
Memoizer = jimport("loci.formats.Memoizer")
if BIOFORMATS_MEMO_DIR is not None:
Expand Down
1 change: 1 addition & 0 deletions src/bffile/_core_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ def from_java(cls, meta: loci.formats.CoreMetadata) -> Self:
t=meta.sizeT,
rgb=rgb_count,
),
rgb_count=rgb_count,
thumb_size_x=meta.thumbSizeX,
thumb_size_y=meta.thumbSizeY,
bits_per_pixel=meta.bitsPerPixel,
Expand Down
33 changes: 33 additions & 0 deletions tests/test_biofile.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,42 @@ def test_core_meta_returns_metadata(opened_biofile: BioFile) -> None:
assert hasattr(meta, "dtype")
assert hasattr(meta, "dimension_order")
assert len(meta.shape) == 6 # CoreMetadata always has 6 elements (TCZYX + rgb)
assert meta.rgb_count == meta.shape.rgb
assert isinstance(meta.dtype, np.dtype)


def test_gif_palette_expands_to_channels(simple_file: Path) -> None:
gif_file = simple_file.parent / "example.gif"
with BioFile(gif_file) as bf:
meta = bf.core_metadata()
assert meta.shape.c == 1
assert meta.shape.rgb == 3
assert meta.is_rgb is True
assert meta.is_indexed is False

r = bf._java_reader
assert r is not None
r.setSeries(0)
assert r.getSizeC() == 3


def test_false_color_indexed_file_not_expanded(simple_file: Path) -> None:
nd2_file = simple_file.parent / "ND2_dims_c2y32x32.nd2"
with BioFile(nd2_file) as bf:
meta = bf.core_metadata()
assert meta.shape.c == 2
assert meta.shape.rgb == 1
assert meta.is_rgb is False
assert meta.is_indexed
assert meta.is_false_color

r = bf._java_reader
assert r is not None
r.setSeries(0)
assert r.getSizeC() == 2
assert r.getImageCount() == 2


def test_ome_xml_property(opened_biofile: BioFile) -> None:
xml = opened_biofile.ome_xml
assert isinstance(xml, str)
Expand Down