使用 jquery 图像裁剪器进行 Ajax 图像预览 [blob url]

Posted

技术标签:

【中文标题】使用 jquery 图像裁剪器进行 Ajax 图像预览 [blob url]【英文标题】:Ajax image preview with jquery image cropper [blob url] 【发布时间】:2015-08-10 05:08:35 【问题描述】:

我正在尝试使用 this ajax 图像预览 javascript sn-p 和 cropper image jquery 插件来创建 ajax 预览裁剪器。

到目前为止,我已经获得了图像预览,然后您可以单击预览并裁剪图像:http://codepen.io/anon/pen/oXmmEq?editors=101

我遇到的主要问题是说您想选择另一个图像进行裁剪。您之前选择的旧图像仍然存在。

我想要的是:

    不必点击图片进行裁剪,只需在加载时立即进行裁剪 如果用户出错,可以预览另一张图片并对其进行裁剪。

我认为对于 2,您只需将图像裁剪器代码包装在一个函数中并执行以下操作:

function PreviewImage(no) 
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("uploadImage" + no).files[0]);
oFReader.onload = function(oFREvent) 
  cropperCode(); // Wraps around image cropper code. Called when oFReader loads.
  document.getElementById("uploadPreview" + no).src = oFREvent.target.result;
;

编辑 我刚刚在cropper demo 中注意到它在被裁剪图像的右下角附近有一个上传图标。当我将鼠标悬停在它上面时,会显示“使用 Blob Urls 导入图像”

我认为这是代码:

    // Import image
var $inputImage = $('#inputImage');
var URL = window.URL || window.webkitURL;
var blobURL;

if (URL) 
  $inputImage.change(function () 
    var files = this.files;
    var file;

    if (!$image.data('cropper')) 
      return;
    

    if (files && files.length) 
      file = files[0];

      if (/^image\/\w+$/.test(file.type)) 
        blobURL = URL.createObjectURL(file);
        $image.one('built.cropper', function () 
          URL.revokeObjectURL(blobURL); // Revoke when load complete
        ).cropper('reset').cropper('replace', blobURL);
        $inputImage.val('');
       else 
        $body.tooltip('Please choose an image file.', 'warning');
      
    
  );
 else 
  $inputImage.parent().remove();

这里是the new codepen try

感谢您提供的任何帮助。

【问题讨论】:

首先我想知道图像什么时候会被裁剪。??你能这么说吗? 抱歉,Himesh,我不确定我是否理解?如果您询问图像何时被裁剪,那是在您选择要上传的图像之后。您可以在我展示的 codepen 示例中看到。 你没有显示完整的代码意味着提交调用或ajax调用在哪里。 >? 预览版?这应该就是全部了:pastie.org/10340951你可以在codepen上试试:codepen.io/anon/pen/oXmmEq?editors=101 【参考方案1】:

我需要添加另一个名为 tooltip 的 jquery 库。

添加库后,编辑中使用的 codepen 将起作用

【讨论】:

以上是关于使用 jquery 图像裁剪器进行 Ajax 图像预览 [blob url]的主要内容,如果未能解决你的问题,请参考以下文章

带有上传器的 jQuery 图像裁剪器

laravel 裁剪器问题不显示全尺寸图像?

使用 jquery 对图像进行多个裁剪框

如果调整图像大小,Jcrop 问题 - Jquery

JQuery 裁剪图像客户端也保留原始版本

使用 jQuery/Java 裁剪和上传图像