in ez_wsi_dicomweb/slide_level_map.py [0:0]
def get_frame_position(self, frame_number: int) -> Tuple[int, int]:
"""Gets the coordinate of the upper-left corner of the input frame.
Args:
frame_number: The input frame number to get the position of.
Returns:
The X and Y coordinates of the upper-left corner of the input frame.
Raises:
FrameNumberOutofBounds if the input frame number is out of the
range.
"""
if (
frame_number < self.frame_number_min
or frame_number > self.frame_number_max
):
raise ez_wsi_errors.FrameNumberOutofBoundsError(
f'The input frame number ({frame_number}) is out of the range: '
f'{self.frame_number_min, self.frame_number_max}'
)
frame_number = int(frame_number - 1)
frames_per_row = int(math.ceil(float(self.width) / float(self.frame_width)))
frame_x = frame_number % frames_per_row
frame_y = int(frame_number / frames_per_row)
return frame_x * self.frame_width, frame_y * self.frame_height