Cropperjs禁用裁剪功能

问题描述 投票:-1回答:1

我在MVC 5 Razor页面上使用cropper.js,我不希望用户使用鼠标选择裁剪区域,我想使用预定义的裁剪(选定)区域初始化裁剪器对象,该区域用户无法调整大小,但是用户可以移动图片上的剪切区域以裁剪图片的一部分。

我无法找到任何禁用裁剪的选项,我检查了他们的Git page,看起来好像没有能力,而且我在Git page上发布了我的请求,但没有得到任何回应。我需要帮助,如何解决此问题。

        window.onload = function() {

            var Cropper = window.Cropper;
            var URL = window.URL || window.webkitURL;
            var container = document.querySelector('.img-container');
            var image = container.getElementsByTagName('img').item(0);
            var download = ''; 
            var actions = document.getElementById('actions');
            var dataX = 128; 
            var dataY = 72; 
            var dataHeight = 1024; 
            var dataWidth = 576; 
            var dataRotate = 0;  
            var dataScaleX = -1; 
            var dataScaleY = 1;  
            var options = {
                aspectRatio: 16 / 9,
                preview: '.img-preview',
                ready: function (e) {
                    console.log(e.type);
                },
                cropstart: function (e) {
                    console.log(e.type, e.detail.action);
                },
                cropmove: function (e) {
                    console.log(e.type, e.detail.action);
                },
                cropend: function (e) {
                    console.log(e.type, e.detail.action);
                },
                crop: function (e) {
                    var data = e.detail;

                    console.log(e.type);
                    dataX.value = Math.round(data.x);
                    dataY.value = Math.round(data.y);
                    dataHeight.value = Math.round(data.height);
                    dataWidth.value = Math.round(data.width);
                    dataRotate.value = typeof data.rotate !== 'undefined' ? data.rotate : '';
                    dataScaleX.value = typeof data.scaleX !== 'undefined' ? data.scaleX : '';
                    dataScaleY.value = typeof data.scaleY !== 'undefined' ? data.scaleY : '';
                },
                zoom: function (e) {
                    console.log(e.type, e.detail.ratio);
                }
            };

            var cropper = new Cropper(image, options);
        }
    .img-container {
        min-height: 497px;
        max-width: 497px;
        margin-bottom: 1rem;
        background-color: white;
        text-align: center;
        width: 100%;
    }

    .img-container > img {
        max-width: 100%;
    }

    img {
        vertical-align: middle;
        border-style: none;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.5/cropper.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.5/cropper.css" rel="stylesheet"/>

<div class="img-container">
    <img src="https://images.pexels.com/photos/266011/pexels-photo-266011.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" id="croppr" />
</div>
javascript cropperjs
1个回答
0
投票

参考@Chris W的帮助。我能够设置固定的裁剪区域。

        var image = document.getElementById('croppr');
        var cropper = new Cropper(image, {
            dragMode: 'move',
            aspectRatio: 16 / 9,
            autoCropArea: 0.65,
            restore: false,
            guides: false,
            center: false,
            highlight: false,
            cropBoxMovable: true,
            cropBoxResizable: false,
            toggleDragModeOnDblclick: false,
        });
    .img-container {
        min-height: 497px;
        max-width: 497px;
        margin-bottom: 1rem;
        background-color: white;
        text-align: center;
        width: 100%;
    }

    .img-container > img {
        max-width: 100%;
    }

    img {
        vertical-align: middle;
        border-style: none;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.5/cropper.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.5/cropper.css" rel="stylesheet"/>

<div class="img-container">
    <img src="https://images.pexels.com/photos/266011/pexels-photo-266011.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260" id="croppr" />
</div>
© www.soinside.com 2019 - 2024. All rights reserved.