Я создаю изображение для изменения размера/обрезки, и я хотел бы показать предварительный просмотр в прямом эфире после того, как они отредактировали его в модальном (бутстрап). Это должно работать, я верю, но я просто получаю 0 в console.log. Это требует кормления ширину и высоту исходного изображения в другой сценарий (который я буду делать после того, просто нужно их в console.log/переменную пока)Получение ширины и высоты изображения с filereader
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');
};
Отлично, спасибо очень много. Я был под дезинформированным впечатлением, что файлы будут загружены с помощью вызова readAsDataURL. –
'reader.onload' вызывается, когда файловая система завершает чтение файла из жесткого диска. 'image.onload' называется по существу, когда по существу объект изображения буферизует данные изображения в браузере. Я вижу, как вы могли бы неправильно истолковать функции onload; рад помочь. –
Примечание: Это работает, только если вы используете «reader.readAsDataURL». С «reader.readAsBinaryString» вы должны идти по-другому. –