large-image-source-tiff 1.30.6.dev18__tar.gz → 1.30.6.dev22__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/PKG-INFO +3 -3
  2. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff/__init__.py +4 -4
  3. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff/tiff_reader.py +24 -0
  4. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/PKG-INFO +3 -3
  5. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/requires.txt +2 -2
  6. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/LICENSE +0 -0
  7. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/README.rst +0 -0
  8. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff/exceptions.py +0 -0
  9. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff/girder_source.py +0 -0
  10. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/SOURCES.txt +0 -0
  11. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/dependency_links.txt +0 -0
  12. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/entry_points.txt +0 -0
  13. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/top_level.txt +0 -0
  14. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/pyproject.toml +0 -0
  15. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/setup.cfg +0 -0
  16. {large_image_source_tiff-1.30.6.dev18 → large_image_source_tiff-1.30.6.dev22}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: large-image-source-tiff
3
- Version: 1.30.6.dev18
3
+ Version: 1.30.6.dev22
4
4
  Summary: A TIFF tilesource for large_image.
5
5
  Home-page: https://github.com/girder/large_image
6
6
  Author: Kitware, Inc.
@@ -19,13 +19,13 @@ Classifier: Programming Language :: Python :: 3.13
19
19
  Requires-Python: >=3.8
20
20
  Description-Content-Type: text/x-rst
21
21
  License-File: LICENSE
22
- Requires-Dist: large-image>=1.30.6.dev18
22
+ Requires-Dist: large-image>=1.30.6.dev22
23
23
  Requires-Dist: pylibtiff
24
24
  Requires-Dist: tifftools>=1.2.0
25
25
  Provides-Extra: all
26
26
  Requires-Dist: pylibjpeg-openjpeg; extra == "all"
27
27
  Provides-Extra: girder
28
- Requires-Dist: girder-large-image>=1.30.6.dev18; extra == "girder"
28
+ Requires-Dist: girder-large-image>=1.30.6.dev22; extra == "girder"
29
29
 
30
30
  A TIFF tilesource for large_image.
31
31
 
@@ -539,7 +539,7 @@ class TiffFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
539
539
  associated._pixelInfo['width'] <= self._maxAssociatedImageSize and
540
540
  associated._pixelInfo['height'] <= self._maxAssociatedImageSize and
541
541
  id not in self._associatedImages):
542
- image = associated._tiffFile.read_image()
542
+ image = associated.read_image()
543
543
  # Optrascan scanners store xml image descriptions in a "tiled
544
544
  # image". Check if this is the case, and, if so, parse such
545
545
  # data
@@ -794,9 +794,9 @@ class TiffFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
794
794
  # _associatedImages. There are some sample files where libtiff's
795
795
  # read_image fails to read the _associatedImage properly because of
796
796
  # separated jpeg information. For the samples we currently have,
797
- # preferring the _embeddedImages is sufficient, but if find other files
798
- # with seemingly bad associated images, we may need to read them with a
799
- # more complex process than read_image.
797
+ # preferring the _embeddedImages is sufficient, but if we find other
798
+ # files with seemingly bad associated images, we may need to read them
799
+ # with a more complex process than read_image.
800
800
  for td in self._tiffDirectories:
801
801
  if td is not None and td is not False and imageKey in td._embeddedImages:
802
802
  return PIL.Image.open(io.BytesIO(base64.b64decode(td._embeddedImages[imageKey])))
@@ -896,3 +896,27 @@ class TiledTiffDirectory:
896
896
  except Exception:
897
897
  pass
898
898
  return True
899
+
900
+ def read_image(self):
901
+ """
902
+ Use the underlying _tiffFile to read an image. But, if it is in a jp2k
903
+ encoding, read the raw data and convert it.
904
+ """
905
+ if self._tiffInfo.get('compression') not in {
906
+ libtiff_ctypes.COMPRESSION_JPEG, 33003, 33004, 33005, 34712}:
907
+ return self._tiffFile.read_image()
908
+ output = None
909
+ for yidx, y in enumerate(range(0, self.imageHeight, self.tileHeight)):
910
+ for xidx, x in enumerate(range(0, self.imageWidth, self.tileWidth)):
911
+ tile = self.getTile(xidx, yidx, asarray=True)
912
+ if len(tile.shape) == 2:
913
+ tile = tile[:, :, np.newaxis]
914
+ if output is None:
915
+ output = np.zeros(
916
+ (self.imageHeight, self.imageWidth, tile.shape[2]), dtype=tile.dtype)
917
+ if tile.shape[0] > self.imageHeight - y:
918
+ tile = tile[:self.imageHeight - y, :, :]
919
+ if tile.shape[1] > self.imageWidth - x:
920
+ tile = tile[:, :self.imageWidth - x, :]
921
+ output[y:y + tile.shape[0], x:x + tile.shape[1], :] = tile
922
+ return output
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: large-image-source-tiff
3
- Version: 1.30.6.dev18
3
+ Version: 1.30.6.dev22
4
4
  Summary: A TIFF tilesource for large_image.
5
5
  Home-page: https://github.com/girder/large_image
6
6
  Author: Kitware, Inc.
@@ -19,13 +19,13 @@ Classifier: Programming Language :: Python :: 3.13
19
19
  Requires-Python: >=3.8
20
20
  Description-Content-Type: text/x-rst
21
21
  License-File: LICENSE
22
- Requires-Dist: large-image>=1.30.6.dev18
22
+ Requires-Dist: large-image>=1.30.6.dev22
23
23
  Requires-Dist: pylibtiff
24
24
  Requires-Dist: tifftools>=1.2.0
25
25
  Provides-Extra: all
26
26
  Requires-Dist: pylibjpeg-openjpeg; extra == "all"
27
27
  Provides-Extra: girder
28
- Requires-Dist: girder-large-image>=1.30.6.dev18; extra == "girder"
28
+ Requires-Dist: girder-large-image>=1.30.6.dev22; extra == "girder"
29
29
 
30
30
  A TIFF tilesource for large_image.
31
31
 
@@ -1,4 +1,4 @@
1
- large-image>=1.30.6.dev18
1
+ large-image>=1.30.6.dev22
2
2
  pylibtiff
3
3
  tifftools>=1.2.0
4
4
 
@@ -6,4 +6,4 @@ tifftools>=1.2.0
6
6
  pylibjpeg-openjpeg
7
7
 
8
8
  [girder]
9
- girder-large-image>=1.30.6.dev18
9
+ girder-large-image>=1.30.6.dev22