large-image-source-vips 1.26.3.dev12__tar.gz → 1.26.3.dev14__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 (14) hide show
  1. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/PKG-INFO +1 -1
  2. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/large_image_source_vips/__init__.py +16 -4
  3. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/large_image_source_vips.egg-info/PKG-INFO +1 -1
  4. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/large_image_source_vips.egg-info/requires.txt +1 -1
  5. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/LICENSE +0 -0
  6. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/README.rst +0 -0
  7. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/large_image_source_vips/girder_source.py +0 -0
  8. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/large_image_source_vips.egg-info/SOURCES.txt +0 -0
  9. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/large_image_source_vips.egg-info/dependency_links.txt +0 -0
  10. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/large_image_source_vips.egg-info/entry_points.txt +0 -0
  11. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/large_image_source_vips.egg-info/top_level.txt +0 -0
  12. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/pyproject.toml +0 -0
  13. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/setup.cfg +0 -0
  14. {large-image-source-vips-1.26.3.dev12 → large-image-source-vips-1.26.3.dev14}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: large-image-source-vips
3
- Version: 1.26.3.dev12
3
+ Version: 1.26.3.dev14
4
4
  Summary: A libvips tilesource for large_image.
5
5
  Home-page: https://github.com/girder/large_image
6
6
  Author: Kitware, Inc.
@@ -299,7 +299,8 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
299
299
  """
300
300
  if self._output is not None:
301
301
  self._image = None
302
- w, h = self._output['width'], self._output['height']
302
+ w = self._output['width'] - min(0, self._output['minx'])
303
+ h = self._output['height'] - min(0, self._output['miny'])
303
304
  w = max(self.minWidth or w, w)
304
305
  h = max(self.minHeight or h, h)
305
306
  self.sizeX = w
@@ -311,7 +312,10 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
311
312
  def addTile(self, tile, x=0, y=0, mask=None, interpretation=None):
312
313
  """
313
314
  Add a numpy or image tile to the image, expanding the image as needed
314
- to accommodate it.
315
+ to accommodate it. Note that x and y can be negative. If so, the
316
+ output image (and internal memory access of the image) will act as if
317
+ the 0, 0 point is the most negative position. Cropping is applied
318
+ after this offset.
315
319
 
316
320
  :param tile: a numpy array, PIL Image, vips image, or a binary string
317
321
  with an image. The numpy array can have 2 or 3 dimensions.
@@ -432,7 +436,9 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
432
436
  if img.format == 'float' and entry['image'].format == 'double':
433
437
  entryimage = entryimage.cast(img.format)
434
438
  branch = branch.composite(
435
- entryimage, pyvips.BlendMode.OVER, x=entry['x'], y=entry['y'])
439
+ entryimage, pyvips.BlendMode.OVER,
440
+ x=entry['x'] - min(0, self._output['minx']),
441
+ y=entry['y'] - min(0, self._output['miny']))
436
442
  if not ((idx + 1) % leaves) or idx + 1 == len(self._output['images']):
437
443
  trunk = trunk.composite(branch, pyvips.BlendMode.OVER, x=0, y=0)
438
444
  branch = baseimg.copy()
@@ -594,9 +600,15 @@ class VipsFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
594
600
  if not self._editable:
595
601
  return self._image.format
596
602
  return self._getVipsFormat()
597
-
598
603
  # TODO: specify bit depth / bandFormat explicitly
599
604
 
605
+ @property
606
+ def origin(self):
607
+ if not self._editable:
608
+ return {'x': 0, 'y': 0}
609
+ return {'x': min(0, self._output['minx'] or 0),
610
+ 'y': min(0, self._output['miny'] or 0)}
611
+
600
612
 
601
613
  def open(*args, **kwargs):
602
614
  """Create an instance of the module class."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: large-image-source-vips
3
- Version: 1.26.3.dev12
3
+ Version: 1.26.3.dev14
4
4
  Summary: A libvips tilesource for large_image.
5
5
  Home-page: https://github.com/girder/large_image
6
6
  Author: Kitware, Inc.
@@ -1,4 +1,4 @@
1
- large-image>=1.26.3.dev12
1
+ large-image>=1.26.3.dev14
2
2
  numpy
3
3
  packaging
4
4
  pyvips