dipta007 commited on
Commit
56bd6cc
·
verified ·
1 Parent(s): 8feebce

Drop the comparison slider, drag the zoom point, allow 8 steps

Browse files
Files changed (1) hide show
  1. geometry.py +8 -1
geometry.py CHANGED
@@ -28,10 +28,17 @@ def zoom_window(img, upscale, center=(0.5, 0.5)):
28
 
29
 
30
  def nested_rects(size, levels, upscale=4, center=(0.5, 0.5)):
31
- """Where each zoom step lands, in the coordinates of the first canvas."""
 
 
 
 
 
32
  rects, rect = [], (0, 0, size[0], size[1])
33
  for _ in range(levels):
34
  side = rect[2] - rect[0]
 
 
35
  l, t, r, b = window_rect((side, side), upscale, center)
36
  rect = (rect[0] + l, rect[1] + t, rect[0] + r, rect[1] + b)
37
  rects.append(rect)
 
28
 
29
 
30
  def nested_rects(size, levels, upscale=4, center=(0.5, 0.5)):
31
+ """Where each zoom step lands, in the coordinates of the first canvas.
32
+
33
+ Stops early once a window would be under a pixel wide. The recursion itself never
34
+ degenerates, because every step resizes its crop back up to the full canvas, but drawing
35
+ all those steps onto the one original canvas does run out of pixels.
36
+ """
37
  rects, rect = [], (0, 0, size[0], size[1])
38
  for _ in range(levels):
39
  side = rect[2] - rect[0]
40
+ if side // upscale < 1:
41
+ break
42
  l, t, r, b = window_rect((side, side), upscale, center)
43
  rect = (rect[0] + l, rect[1] + t, rect[0] + r, rect[1] + b)
44
  rects.append(rect)