Image Cropper
Crop, zoom, and rotate images. Supports Reactive Forms and Signal API.
Basic Cropper (16:9)
Default 16:9 aspect ratio. Drag to crop, zoom with +/-, rotate with the slider.
Cropped Result
0 × 0 px
Square 1:1 (Fixed Aspect)
Fixed 1:1 aspect ratio in a 320px square container. No aspect dropdown shown.
Free Aspect Ratio
Container has 4:3 aspect ratio. Aspect ratio selector is visible.
Fixed Width with Sidebar
Set a fixed width like [width]="600" so the cropper size stays constant regardless of sibling layout changes.
Error Handling
When the image fails to load, a loadError event is emitted.
Dynamic Configuration
Change aspect ratio, format, quality, and output size on the fly.
Toolbar Positions
The toolbar can be placed at top, bottom (default), left, or right.
Bottom (default)
Top
Left
Right
Constrain to Image
When constrainToImage is true (default), the crop selection cannot leave the original image area — even when zooming out or rotating.
Try zooming out (-) or rotating (r). The crop stays inside the image.
Template-driven Form
Using ngModel with the cropper. The model value is the cropped image data URL.
Model value: none
Reactive Form
Using formControl with the cropper. The control value is the cropped image data URL.
Control value: none
Control enabled: true
Signal Form
Using model() signal directly — no FormsModule or ReactiveFormsModule needed.
Signal value: none