diff --git a/setup.py b/setup.py index 05ed181..6a0e47f 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ with open("README.md", "r") as fh: setuptools.setup( name="tiffexplore", packages=["tiffexplore"], - version="2021.06.1", + version="2021.06.2", author="Wim Pomp", author_email="wimpomp@gmail.com", description="Explore a tiff structure.", diff --git a/tiffexplore/__init__.py b/tiffexplore/__init__.py index 760547e..3c7094c 100644 --- a/tiffexplore/__init__.py +++ b/tiffexplore/__init__.py @@ -185,8 +185,11 @@ class Bar(PaintBox): text.append('\n' + self.tiff.fmt_tag(key[2], self.tiff.tags[key[1]][key[2]])) if key[0].lower() == 'image': im = self.tiff.asarray(key[1], key[2]) - text.append(f'\nStrip size: {im.shape}') - text.append(f'Data type: {im.dtype}') + if im is not None: + text.append(f'\nStrip size: {im.shape}') + text.append(f'Data type: {im.dtype}') + text.append(f'Min, max: {im.min()}, {im.max()}') + text.append(f'Mean, std: {im.mean()}, {im.std()}') self.parent.setImage(im) else: self.parent.setImage() diff --git a/tiffexplore/tiffread.py b/tiffexplore/tiffread.py index 9a44dbf..be51bea 100644 --- a/tiffexplore/tiffread.py +++ b/tiffexplore/tiffread.py @@ -8,7 +8,10 @@ class tiff(): def __init__(self, file): self.file = file self.fh = open(file, 'rb') - self.tiff = tifffile.TiffFile(self.file) + try: + self.tiff = tifffile.TiffFile(self.file) + except Exception: + self.tiff = None self.tags = [] self.get_file_len() self.addresses = assignments(len(self)) @@ -32,10 +35,17 @@ class tiff(): text = [f'Code: {code}'] if code in tifffile.TIFF.TAGS: text[-1] += f'; {tifffile.TIFF.TAGS[code]}' - text.append(f'data format: {value[0]}; {tifffile.TIFF.DATA_FORMATS.get(value[0])}') + text.append(f'data format: {value[0]}') + try: + text[-1] += f'; {tifffile.TIFF.DATATYPES(value[0]).name.lower()}' + except ValueError: + pass text.append(f'address: {value[1]}') text.append(f'count: {value[2]}') - text.append(f'value: {value[3]}') + if value[0] == 5: + text.append(f'value: [{", ".join(["/".join([str(w) for w in v[::-1]]) for v in value[3]])}]') + else: + text.append(f'value: {value[3]}') return '\n'.join(text) def get_file_len(self): @@ -46,7 +56,8 @@ class tiff(): return self.len def asarray(self, page, segment): - return [d for d in zip(self.tiff.pages[page].segments(), range(segment + 1))][-1][0][0].squeeze() + if self.tiff is not None: + return [d for d in zip(self.tiff.pages[page].segments(), range(segment + 1))][-1][0][0].squeeze() def read_header(self): self.fh.seek(0)