Intersect the zoom bounding box with the image rectangle

Prevents weird artifacts if you select a region that extends beyond the image
Add support for annotations (mark points, scale bars, etc.)