我有一个网站,可以选择上传图片然后裁剪。我使用过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步:
第2步:
但是在移动步骤2中显示空图像。为什么会发生这种情况,我需要做些什么改变?
答案 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>
更新
您应该使用客户端尺寸裁剪,在上传之前使用画布裁剪它,尝试DarkroomJS plug in
这是一个使用jCrop和HTML 5 Canvas进行客户端裁剪的实验