AutoZoomController class
Smooth camera auto-zoom controller inspired by Dynamsoft Barcode Reader SDK.
v3.0 upgrade: Replaces instant zoom jumps with smooth animated zoom using ease-out interpolation, settling detection, velocity limiting, and hysteresis band to prevent zoom oscillation.
Features:
- Smooth ease-out zoom animation (configurable duration)
- Zoom settling detection (N stable frames before declaring complete)
- Maximum zoom velocity limiting (prevents jarring jumps)
- Hysteresis band (±5% dead zone to prevent oscillation)
- Distance estimation from barcode module size
Constructors
Properties
- currentZoom → double
-
Current zoom factor level.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- hysteresisBand → double
-
Hysteresis band: don't adjust zoom for area changes within this range.
final
- isSettled → bool
-
Whether zoom has settled (stable for N frames).
no setter
- lastZoomChangeTime → DateTime?
-
Time when zoom level was last adjusted.
no setter
- lerpFactor → double
-
final
- maxZoom → double
-
final
- maxZoomVelocity → double
-
Maximum zoom change per update (velocity limiter).
final
- minZoom → double
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- settlingFrameCount → int
-
Number of stable frames required before zoom is considered settled.
final
- stableFrames → int
-
Number of consecutive stable frames.
no setter
- targetAreaFraction → double
-
final
- targetZoom → double
-
Target zoom level being animated towards.
no setter
Methods
-
estimateZoomFromModuleSize(
{required double moduleWidthPixels, double idealModuleWidth = 3.0}) → double - Estimates optimal zoom level from barcode module size.
-
evaluateTargetZoom(
{required Rect targetBoundingBox, required Rect roiScanWindow, required Size frameSize}) → double - Calculates desired target zoom level based on target bounding box area relative to scan window ROI.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reset(
) → void - Resets zoom back to minimum 1.0.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited