gpt4 book ai didi

javascript - 如何设置 JQuery JCrop 预览以在文件上传后进行裁剪?

转载 作者:行者123 更新时间:2023-12-03 08:00:04 25 4
gpt4 key购买 nike

我正在使用 JCrop jquery 库,我在使用 HTML 文件控件上传文件后提供图像预览。

查看部分(演示数据)

<input type="file" id="photograph" />
<img src="#" id="target" />

Javascript代码

// for setting img src
function readURL(input) {
console.log("readURL");
if (input.files && input.files[0]) {
var reader = new FileReader();

reader.onload = function (e) {
$('#target').attr('src', e.target.result);
console.log("inside if =>"+e.target.result);
}

console.log("outside IF");
reader.readAsDataURL(input.files[0]);

}
}

// for setting pre-selected cropping area
function setProperties(){
console.log("set properties");

$('#target').Jcrop({
setSelect: [0,12,23,43]
});

}

// on change event for fileupload
$("#photograph").change(function(){
console.log("change event called!");
readURL(this);
setProperties();
});

输出

 change event called!
readURL
outside IF
set properties
inside if=>data:image/jpeg;base64,/9j/4gIcSUNDX1BST0ZJTEUAAQEAAAIMbGNtcwIQAABtbnRyUkdC…sXK2t+4UdmuSVl64hb2gMHh1Nhm83DAdQJniIM6eZUxzuYCR2my3FSwGpVbzBdwlgrrc/

我想在上传图像文件后设置一些属性,但是“inside if=>”[参见上面发布的输出]在最后被调用。那么为什么会发生这种情况呢?以及我应该如何解决这个问题?

最佳答案

在设置图像source并加载图像加载后,您必须调用setProperties

function readURL(input) { 
console.log("readURL");
if (input.files && input.files[0]) {
var reader = new FileReader();

reader.onload = function (e) {
$('#target').attr('src', e.target.result);
console.log("inside if =>"+e.target.result);
// Call after source setted and image file loaded
setProperties();
}

console.log("outside IF");
reader.readAsDataURL(input.files[0]);

}
}

关于javascript - 如何设置 JQuery JCrop 预览以在文件上传后进行裁剪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34626683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com