init method

void init({
  1. required Size viewportSize,
  2. required Size imageRenderSize,
  3. required Image originalImage,
  4. required Rect cropRect,
})

Implementation

void init({
  required Size viewportSize,
  required Size imageRenderSize,
  required ui.Image originalImage,
  required Rect cropRect,
}) {
  _imageRenderSize = imageRenderSize;
  _originalImage = originalImage;
  _viewportCropRect = cropRect;

  // Remove old listeners to avoid duplicates if re-inited
  transformationController.removeListener(_onMatrixChange);
  transformationController.addListener(_onMatrixChange);

  // Initial Setup: Center and Cover
  // Use addPostFrameCallback to ensure the widget tree is ready if needed,
  // though for matrix logic it can be immediate.
  // PostFrame is safer for triggering value updates that might rebuild.
  WidgetsBinding.instance.addPostFrameCallback((_) {
    _resetToCenterCover();
  });
}