# 预览器中图片进行缩放操作后，移出屏幕显示范围

#### 问题现象

在预览器中对图片进行缩放操作后，由于缩放比例的变化，图片的显示区域可能超出当前屏幕的可视范围，导致部分或全部图像无法在屏幕上完整显示，需要通过拖动或调整缩放比例才能重新将其完整呈现。

#### 背景知识

图片预览器是常见的开发应用场景，在诸多日常使用的软件中，图片预览器都是提升用户体验的关键组件。它允许用户在上传、分享或编辑图片之前，先对图片进行预览，从而确保图片的质量和效果符合预期。要使图片预览器中图片不超出边界，就需要先掌握关键技术中的边界限制的原理。边界计算涉及两个方面：当前图片显示边界计算、offset范围计算。

*   当前图片显示边界计算可得出当前图片显示的位置，左右上下是否与显示区域边界对齐，如果已经对齐，则不能继续往某个方向继续拖动。
*   平移/缩放时必须对offset作限制，否则图片将被移出显示区域或是手势结束后周围有黑边。从原理上看，某个scale下offset（x&y方向上）的缩放比例是固定的，所以只需在手势交互时根据当前的scale计算得出offsetRange即可（超出边界时取边界作为结果）。

#### 问题定位

在代码中搜索关键词最大偏移量maxOffset和最小偏移量minOffset，排查代码中是否设置了图片在四个方向上的边界值。

#### 分析结论

没有在图片预览器中设置边界值，导致图片显示会超出边界。

#### 修改建议

增加图片边界限制，参考边界限制的实现。