large-image-source-multi 1.27.2.dev6__tar.gz → 1.27.2.dev10__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-multi-1.27.2.dev6/large_image_source_multi.egg-info → large-image-source-multi-1.27.2.dev10}/PKG-INFO +1 -1
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/large_image_source_multi/__init__.py +13 -5
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10/large_image_source_multi.egg-info}/PKG-INFO +1 -1
- large-image-source-multi-1.27.2.dev10/large_image_source_multi.egg-info/requires.txt +9 -0
- large-image-source-multi-1.27.2.dev6/large_image_source_multi.egg-info/requires.txt +0 -9
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/LICENSE +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/README.rst +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/docs/specification.rst +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/large_image_source_multi/girder_source.py +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/large_image_source_multi.egg-info/SOURCES.txt +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/large_image_source_multi.egg-info/dependency_links.txt +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/large_image_source_multi.egg-info/entry_points.txt +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/large_image_source_multi.egg-info/top_level.txt +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/pyproject.toml +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/setup.cfg +0 -0
- {large-image-source-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/setup.py +0 -0
|
@@ -743,6 +743,7 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
743
743
|
# construct a frame list. Each frame is a list of sources that affect
|
|
744
744
|
# it along with the frame number from that source.
|
|
745
745
|
lastSource = None
|
|
746
|
+
bandCount = 0
|
|
746
747
|
for sourceIdx, source in enumerate(sources):
|
|
747
748
|
path = source['path']
|
|
748
749
|
if os.path.abspath(path) == absLargeImagePath:
|
|
@@ -766,11 +767,14 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
766
767
|
self._nativeMagnification[key] or tsMag.get(key))
|
|
767
768
|
numChecked += 1
|
|
768
769
|
tsMeta = ts.getMetadata()
|
|
770
|
+
bandCount = max(bandCount, ts.bandCount or 0)
|
|
769
771
|
if 'bands' in tsMeta and self._info.get('singleBand') is not True:
|
|
770
772
|
if not hasattr(self, '_bands'):
|
|
771
773
|
self._bands = {}
|
|
772
774
|
self._bands.update(tsMeta['bands'])
|
|
773
775
|
lastSource = source
|
|
776
|
+
self._bandcount = 1 if self._info.get('singleBand') else (
|
|
777
|
+
len(self._bands) if hasattr(self, '_bands') else (bandCount or None))
|
|
774
778
|
bbox = self._sourceBoundingBox(source, tsMeta['sizeX'], tsMeta['sizeY'])
|
|
775
779
|
computedWidth = max(computedWidth, int(math.ceil(bbox['right'])))
|
|
776
780
|
computedHeight = max(computedHeight, int(math.ceil(bbox['bottom'])))
|
|
@@ -934,19 +938,19 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
934
938
|
vfill = np.zeros(
|
|
935
939
|
(tile.shape[0] + y - base.shape[0], base.shape[1], base.shape[2]),
|
|
936
940
|
dtype=base.dtype)
|
|
937
|
-
if base.shape[2]
|
|
941
|
+
if base.shape[2] in {2, 4}:
|
|
938
942
|
vfill[:, :, -1] = fullAlphaValue(base)
|
|
939
943
|
base = np.vstack((base, vfill))
|
|
940
944
|
if base.shape[1] < tile.shape[1] + x:
|
|
941
945
|
hfill = np.zeros(
|
|
942
946
|
(base.shape[0], tile.shape[1] + x - base.shape[1], base.shape[2]),
|
|
943
947
|
dtype=base.dtype)
|
|
944
|
-
if base.shape[2]
|
|
948
|
+
if base.shape[2] in {2, 4}:
|
|
945
949
|
hfill[:, :, -1] = fullAlphaValue(base)
|
|
946
950
|
base = np.hstack((base, hfill))
|
|
947
951
|
if base.flags.writeable is False:
|
|
948
952
|
base = base.copy()
|
|
949
|
-
if base.shape[2]
|
|
953
|
+
if base.shape[2] in {2, 4}:
|
|
950
954
|
baseA = base[y:y + tile.shape[0], x:x + tile.shape[1], -1].astype(
|
|
951
955
|
float) / fullAlphaValue(base)
|
|
952
956
|
tileA = tile[:, :, -1].astype(float) / fullAlphaValue(tile)
|
|
@@ -1112,8 +1116,8 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
1112
1116
|
transform[0][0] > 0 and transform[0][1] == 0 and
|
|
1113
1117
|
transform[1][0] == 0 and transform[1][1] > 0 and
|
|
1114
1118
|
transform[0][2] % scaleX == 0 and transform[1][2] % scaleY == 0)) and
|
|
1115
|
-
((scaleX % scale) == 0 or math.log(scaleX, 2).is_integer) and
|
|
1116
|
-
((scaleY % scale) == 0 or math.log(scaleY, 2).is_integer))
|
|
1119
|
+
((scaleX % scale) == 0 or math.log(scaleX, 2).is_integer()) and
|
|
1120
|
+
((scaleY % scale) == 0 or math.log(scaleY, 2).is_integer())):
|
|
1117
1121
|
srccorners = (
|
|
1118
1122
|
list(np.dot(bbox['inverse'], np.array(corners).T).T)
|
|
1119
1123
|
if transform is not None else corners)
|
|
@@ -1208,6 +1212,10 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
1208
1212
|
dtype=getattr(self, '_firstdtype', np.uint8))
|
|
1209
1213
|
if self._info.get('singleBand'):
|
|
1210
1214
|
tile = tile[:, :, 0]
|
|
1215
|
+
elif tile.shape[2] in {2, 4} and (self._bandCount or tile.shape[2]) < tile.shape[2]:
|
|
1216
|
+
# remove a needless alpha channel
|
|
1217
|
+
if np.all(tile[:, :, -1] == fullAlphaValue(tile)):
|
|
1218
|
+
tile = tile[:, :, :-1]
|
|
1211
1219
|
# We should always have a tile
|
|
1212
1220
|
return self._outputTile(tile, TILE_FORMAT_NUMPY, x, y, z,
|
|
1213
1221
|
pilImageAllowed, numpyAllowed, **kwargs)
|
|
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-multi-1.27.2.dev6 → large-image-source-multi-1.27.2.dev10}/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|