Image Cropper

Drag-to-crop image component with optional aspect ratio lock.

python 9 params

Preview

Image to crop

Usage

views.py
python
from djust import LiveView
from djust.decorators import event_handler
from djust.components import ImageCropper


class MyView(LiveView):
    template_name = "my_template.html"

    def mount(self, request, **kwargs):
        self.component = ImageCropper()

    @event_handler()
    def save_crop(self, value=None, **kwargs):
        pass  # your app acts on 'save_crop'; no component state moves
my_template.html
django
{{ component }}

Events this component sends to the view: save_crop.

Needs its script on the page: <script src="{% static 'djust_components/image-cropper.js' %}"></script>. djust ships it; without it the markup renders but does not update in the browser.

Parameters

NameTypeDefaultDescription
srcstr''image URL to crop
crop_eventstr — renames the event; identity is `name`'save_crop'djust event fired with crop data (x, y, width, height)
aspect_ratiostr''lock ratio (e.g. "1/1", "16/9", "4/3"), empty = free
min_widthint50minimum crop width in px (default 50)
min_heightint50minimum crop height in px (default 50)
disabledboolFalsedisable cropping (default False)
custom_classstr''additional CSS classes
altstr'Image to crop'alternative text of the image (default "Image to crop")
**kwargs— passed to `Component.__init__`: `name=` identifies the instance in the events it sends, `id=` sets `component.id`, and any other keyword is kept as state——
Source & styles
FilePathNotes
moduledjust.components.components.image_cropperSubclass it, or pass custom_class, to change how it renders.
cssdjust_components/components.cssDefines 18 of this component's classes at line 1984, 1985, 1986, 1987, 1988, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003. Override those rules, or the custom properties they read, in a stylesheet loaded after it.