jquery - 如何给cropper.js一个固定的高度和宽度来相应地裁剪

标签 jquery cropper cropperjs

我正在使用cropper.js v0.8.0

我使用下面的 jQuery 代码来裁剪图像。

function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $('#img_view').attr('src', e.target.result)
            };
            reader.readAsDataURL(input.files[0]);
            setTimeout(initCropper, 1000);
        }

function initCropper(){
        // console.log("Came here")
        var image = document.getElementById('img_view');
        var cropper = new Cropper(image, {
          aspectRatio: 1/1,
          cropBoxResizable: false,
          crop: function(e) {
            // console.log(e.detail.x);
            // console.log(e.detail.y);
          }
        });

        // On crop button clicked
        document.getElementById('crop_button').addEventListener('click', function(){
            var imgurl =  cropper.getCroppedCanvas().toDataURL();
            var img = document.createElement("img");
            img.src = imgurl;
            document.getElementById("cropped_result").appendChild(img);

            /* ---------------- SEND IMAGE TO THE SERVER-------------------------

                cropper.getCroppedCanvas().toBlob(function (blob) {
                      var formData = new FormData();
                      formData.append('croppedImage', blob);
                      // Use `jQuery.ajax` method
                      $.ajax('/path/to/upload', {
                        method: "POST",
                        data: formData,
                        processData: false,
                        contentType: false,
                        success: function () {
                          console.log('Upload success');
                        },
                        error: function () {
                          console.log('Upload error');
                        }
                      });
                });
            */
        })
    }

默认情况下,每当裁剪器区域发生裁剪图像时,默认情况下都是纵横比。我希望它以特定的高度和宽度进行裁剪,例如 420x230。我试过
maxCropBoxWidth: 420,
maxCropBoxHeight: 230,


minCropBoxWidth: 420,
minCropBoxHeight: 230,

以下是我的 HTML 代码:
<div class="custom-file">
    <input type="file" id="post_featured_image" name="post_featured_image" class="custom-file-input" onchange="readURL(this);" />
    <div class="image_container">
        <img id="img_view" class="fixed-size-crop-box" src="#" alt="This is How the Featured Image will Look Exactly..">
    </div>
    <div id="cropped_result"></div>
    <button id="crop_button">Crop</button>
    <label class="custom-file-label" for="post_featured_image">Choose file</label>
</div>

但仍然没有成功。代码中是否有任何错误或由于较低版本而无法正常工作,任何人都可以帮助我更新版本。这将非常有帮助。 M 自过去 10 小时以来一直坚持这一点。

最佳答案

也许这可以解决您的问题。

var cropper = new Cropper(image, {
    dragMode: 'move',
    autoCropArea: 0.65,
    restore: false,
    guides: false,
    center: false,
    highlight: false,
    cropBoxMovable: false,
    cropBoxResizable: false,
    toggleDragModeOnDblclick: false,
    data:{ //define cropbox size
      width: 240,
      height:  90,
    },
  });

关于jquery - 如何给cropper.js一个固定的高度和宽度来相应地裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53800623/

相关文章:

javascript - 使用 jQuery 按 JSON 数组分组

php - 第二部分相同的 CSS 选择器

Cropper.js 以编程方式裁剪

javascript - 设置 fengyuanchen jQuery Cropper.js v3.0.0 预览大小与图像相同

cropperjs - 尝试导入 Cropperjs 给出 : TypeError: Error resolving module specifier: cropperjs

javascript - 如何在不裁剪的情况下保存图像?

jquery - jqGrid - 通过 Json 动态添加行

jquery - 将 jQuery UI slider 小部件转换为 AngularJS 指令

javascript - cropper.jscant 通过 blueimp 初始化 blob 图像 <img> 标签

javascript - CropperJS : Image outsite the crop box is not visible