0

所以我想要什么:

选择具有输入类型文件的图像,使用 blueimp 缩小比例,使用cropper.js裁剪该图像

所以 blueimp 部分工作正常,图像被调整为 maxWidth 属性并作为<img>标签附加到“#imagearea”然后我想根据该标签初始化cropper.js,就像在文档中一样,这是我的代码

  document.getElementById('file-input').onchange = function (e) {
      var loadingImage = loadImage(
          e.target.files[0],
          function (img) {


            $(img).attr("style","max-width: 100%;")
            $('#imagearea').append(img)
            // now i see the image and when i inspect dom its a <img> tag

            // so lets initialize the cropper
            $('#imagearea').find("img").cropper({
              aspectRatio: 16 / 9,
              crop: function(e) {

              }
            });
          },
          {maxWidth: 1280}
      );

  };

但是在初始化裁剪器时,首先我收到一个 404 错误,例如

GET blob:http://foo.bar/64c77709-29f7-44ba-8772-49517e7976e5 404 (Not Found)

进而

Uncaught RangeError: Offset is outside the bounds of the DataView at DataView.getUint8 () at m (6eaf333.js:7051) at e.value (6eaf333.js:7051) at XMLHttpRequest.n.onload (6eaf333.js:7051)

4

1 回答 1

1

请使用“noRevoke”选项。

document.getElementById('file-input').onchange = function (e) {
      var loadingImage = loadImage(
          e.target.files[0],
          function (img) {


            $(img).attr("style","max-width: 100%;")
            $('#imagearea').append(img)
            // now i see the image and when i inspect dom its a <img> tag

            // so lets initialize the cropper
            $('#imagearea').find("img").cropper({
              aspectRatio: 16 / 9,
              crop: function(e) {

              }
            });
          },
          {maxWidth: 1280,noRevoke: true}
      );

  };

于 2017-12-14T12:30:43.600 回答