large-image-source-tiff 1.30.6.dev20__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.
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/PKG-INFO +3 -3
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff/__init__.py +4 -4
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff/tiff_reader.py +24 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/PKG-INFO +3 -3
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/requires.txt +2 -2
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/LICENSE +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/README.rst +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff/exceptions.py +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff/girder_source.py +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/SOURCES.txt +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/dependency_links.txt +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/entry_points.txt +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/large_image_source_tiff.egg-info/top_level.txt +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/pyproject.toml +0 -0
- {large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/setup.cfg +0 -0
- {large_image_source_tiff-1.30.6.dev20 → 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.
|
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.
|
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.
|
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.
|
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
|
798
|
-
# with seemingly bad associated images, we may need to read them
|
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.
|
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.
|
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.
|
28
|
+
Requires-Dist: girder-large-image>=1.30.6.dev22; extra == "girder"
|
29
29
|
|
30
30
|
A TIFF tilesource for large_image.
|
31
31
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{large_image_source_tiff-1.30.6.dev20 → large_image_source_tiff-1.30.6.dev22}/pyproject.toml
RENAMED
File without changes
|
File without changes
|
File without changes
|