Я пытаюсь добавить обрезку изображения на свой сайт, а также отправлять размеры изображения для обработки, когда изображение отправляется для обрезания. Я могу получить изображение, которое появится в окне предварительного просмотра, но я не могу получить javascript для вывода размеров изображения.Показать изображение Preview + Показать размеры
Мой сценарий:
<script type="text/javascript">
function PreviewImage() {
var oFReader = new FileReader();
oFReader.readAsDataURL(document.getElementById("id_avatar").files[0]);
oFReader.onload = function (oFREvent) {
document.getElementById("avatar_preview").src = oFREvent.target.result;
};
var imgheight;
var imgwidth;
function getDimensions() {
imgheight = image.height;
imgwidth = image.width;
document.getElementById('image_dimension').value = ('The image size is ' + imgwidth + ' x ' + imgheight);
};
var image = new Image();
image.src = document.getElementById('avatar_preview').src;
image.onload = getDimensions();
};
</script>
И мой HTML:
<input type='file' id='id_avatar' name='avatar' onchange="PreviewImage();" /><br />
<div id="parent" style="width: 300px; height: 300px; overflow: hidden;">
<img id="avatar_preview" src="#" alt="your image" style="width:400px;" />
</div>
<input type='text' id='image_dimension' name='image_dimension' />
Этот код дает мне "Это изображение 0 х 0" в image_dimension текстовом поле.
Если я двигаю document.getElementById («image_dimension»). Значение в функции обратного вызова, то я ничего не получаю вообще в текстовом поле. Я обновляю свой код для показа. –
@JasonBoyce, удалите 'return true;' от обратного вызова в конце imgheight = this.height; imgwidth = this.width; return true; – AmmarCSE
Я удалил «return true» и изменил переменные с «imgheight = this.height;» и "imgwidth = this.width" в "imgheight = image.height;" и "imgwidth = image.width;" который дает мне «Размер изображения 0 x0», который лучше, чем неопределенное, но все же не фактическое изображение. Это улучшается, хотя! –