Пробовал через центры, тоже неверные результаты.
Вот так находятся центры картинки (проверено, правильно).
центр до:
Код:
x0 := (ViewportPosition.X / OldValue) + (HScrollBar.ViewportSize / (OldValue*2));
y0 := (ViewportPosition.Y / OldValue) + (VScrollBar.ViewportSize / (OldValue*2));
центр после:
Код:
x02 := (ViewportPosition.X / NewValue) + (HScrollBar.ViewportSize / (NewValue*2));
y02 := (ViewportPosition.Y / NewValue) + (VScrollBar.ViewportSize / (NewValue*2));