Buduję rozmiar obrazu/przycinanie, a chciałbym wyświetlić podgląd na żywo po ich edycji w trybie modalnym (ładowanie początkowe). Myślę, że ten powinien działać, ale po prostu dostaję 0 w console.log. To wymaga karmienia szerokość i wysokość obrazu oryginalnego do innego skryptu (co zrobię potem wystarczy je console.log/zmienną na razie)Uzyskiwanie szerokości i wysokości obrazu za pomocą filereadera
function doProfilePictureChangeEdit(e) {
var files = document.getElementById('fileupload').files[0];
var reader = new FileReader();
reader.onload = (function(theFile) {
document.getElementById('imgresizepreview').src = theFile.target.result;
document.getElementById('profilepicturepreview').src = theFile.target.result;
}
);
reader.readAsDataURL(files);
var imagepreview = document.getElementById('imgresizepreview');
console.log(imagepreview.offsetWidth);
$('img#imgresizepreview').imgAreaSelect({
handles: true,
enable: true,
aspectRatio: "1:1",
onSelectEnd: preview
});
$('#resizeprofilepicturemodal').modal('show');
};
Wielki, dzięki bardzo. Byłem źle poinformowany, że pliki będą ładowane wywołaniem readAsDataURL. –
'reader.onload' jest wywoływane po zakończeniu odczytu systemu plików z dysku twardego. 'image.onload' jest nazywane zasadniczo, gdy w zasadzie obiekt obrazu buforował dane obrazu w przeglądarce. Widzę, jak mogłeś źle zinterpretować funkcje onload; cieszę się, że mogę pomóc. –
Uwaga: Działa to tylko wtedy, gdy używasz "read.readAsDataURL". Z "read.readAsBinaryString" musisz przejść inną drogę. –