Полагаю, вы можете отслеживать отдельные коэффициенты масштабирования?
«Окончательное» значение масштаба изображения, которое было изменено несколько раз, является произведением отдельных масштабных факторов. Упрощенный пример с использованием одинакового масштаба для оси x
и y
:
float[] scales = {0.2f, 0.5f, 1f, 2f, 5f};
Если вы примените их впоследствии, тогда окончательный масштаб снова будет равен 0,2 * 0,5 * 1 * 2 * 5 = 1, то есть окончательное изображение снова будет таким же, как и исходное.
Если вы применяете разные коэффициенты для оси x
и y
, то вам нужно рассчитать произведение отдельно для обеих осей.