jCrop在移动设备上无法正常工作

时间:2015-03-02 11:46:08

标签: jquery jcrop

我有一个网站,可以选择上传图片然后裁剪。我使用过jCrop库。它在桌面浏览器上运行良好,但在移动设备上,选择图像后,它不会在弹出窗口上显示图像。

// show_popup_crop : show the crop popup
function show_popup_crop(url) {
    // change the photo source
    $('#cropbox').attr('src', url);
    // destroy the Jcrop object to create a new one
    try {
        jcrop_api.destroy();
    } catch (e) {
        // object not defined
    }
    // Initialize the Jcrop using the TARGET_W and TARGET_H that initialized before
    $('#cropbox').Jcrop({
      aspectRatio: TARGET_W / TARGET_H,
      setSelect:   [ 100, 100, TARGET_W, TARGET_H ],
      allowResize: false,
      trueSize: [200,300],      
      onSelect: updateCoords
    },function(){
        jcrop_api = this;
    });

    // store the current uploaded photo url in a hidden input to use it later
    $('#photo_url').val(url);
    // hide and reset the upload popup
    $('#popup_upload').hide();
    $('#loading_progress').html('');
    $('#photo').val('');

    // show the crop popup
    $('#popup_crop').show();
}


function updateCoords(c) {
    $('#x').val(c.x);
    $('#y').val(c.y);
    $('#w').val(c.w);
    $('#h').val(c.h);
}

请在下面找到截图Step1和step2(它是桌面的screengrap)

第1步: Step1 When uploading

第2步: Step2

但是在移动步骤2中显示空图像。为什么会发生这种情况,我需要做些什么改变?

1 个答案:

答案 0 :(得分:1)

我不认为它可以在移动设备上使用,您可以选择在移动设备上打开媒体弹出窗口

以下是用于图像捕获的HTML:

<input type="file" accept="image/*" capture>

捕捉视频非常相似;你只需要相应地设置accept属性。

<input type="file" accept="video/*" capture>

捕捉音频的故事是一样的:

<input type="file" accept="audio/*" capture>

例如,如果您想使用设备相机拍摄照片并使用HTML表单上传图片,这就是您需要的所有代码。

<form action="upload.htm" method="post" enctype="multipart/form-data">
    <input type="file" accept="image/*" capture>
    <input type="submit" value="Upload">
</form>

了解更多read thisthis

更新

您应该使用客户端尺寸裁剪,在上传之前使用画布裁剪它,尝试DarkroomJS plug in

这是一个使用jCrop和HTML 5 Canvas进行客户端裁剪的实验