web-dev-qa-db-fra.com

taille javascript/jquery et dimension du fichier image chargé

J'ai besoin d'afficher la taille de l'image en kilooctets et la dimension (hauteur, largeur) à l'aide de javascript/jquery. Je suis tombé sur quelques messages similaires, mais aucun ne pouvait m'aider. J'ai deux jeux de codes, qui fonctionnent séparément. Je n'arrive pas à comprendre comment les assembler.

C'est le code html:

<span id="preview"></span>
<input type="file" id="file" onchange="displayPreview(this.files);"/>

Ce morceau de code vérifie la taille du fichier et prévisualise l'image:

function onFileLoad(e) { 
    $('#preview').append('<img src="'+e.target.result +'"/>');  
}
function displayPreview(files) {
    var reader = new FileReader();
    reader.onload = onFileLoad;
    reader.readAsDataURL(files[0]);
    fileSize = Math.round(files[0].size/1024);
    alert("File size is "+fileSize+" kb");
}

Ce morceau de code vérifie la taille du fichier:

var _URL = window.URL || window.webkitURL;
$("#file").change(function (e) {
    var file, img;
    if ((file = this.files[0])) {
        img = new Image();
        img.onload = function () {
            alert(this.width + " " + this.height);
        };
        img.src = _URL.createObjectURL(file);
    }
});

Aidez-moi à rassembler ces codes et à afficher ensemble la taille et la dimension.

10
sridhar

Pour utiliser les deux codes, il vous suffit de les combiner dans la fonction displayPreview. Vous pouvez créer l'objet image qui sera ajouté à la preview et trouver sa taille, sa largeur et sa hauteur dans la même fonction.

var _URL = window.URL || window.webkitURL;
function displayPreview(files) {
   var file = files[0];//get file   
   var img = new Image();
   var sizeKB = file.size / 1024;
   img.onload = function() {
      $('#preview').append(img);
      alert("Size: " + sizeKB + "KB\nWidth: " + img.width + "\nHeight: " + img.height);
   }
   img.src = _URL.createObjectURL(file);
}
17
Steven Lambert

Tu peux essayer comme ça

HTML

<span id="preview"></span>
<input type="file" id="file" />

JQUERY

var _URL = window.URL || window.webkitURL;

function displayPreview(files) {
    var img = new Image(),
        fileSize = Math.round(files.size / 1024);

    img.onload = function () {
        var width = this.width,
            height = this.height,
            imgsrc = this.src;

        doSomething(fileSize, width, height, imgsrc); //call function

    };
    img.src = _URL.createObjectURL(files);
}

// Do what you want in this function
function doSomething(size, width, height, imgsrc) {
    $('#preview').append('<img src="' + imgsrc + '">');
    alert("Size=" + size);
    alert("Width=" + width + " height=" + height);


}

Les deux méthodes

Jsfiddle http://jsfiddle.net/code_snips/w4y75/ Jsfiddle http://jsfiddle.net/code_snips/w4y75/1/

2
Manish

Comment obtenir une largeur et une hauteur d'image à l'aide de jquery

Découvrez la largeur et la hauteur de l'image lors du téléchargement d'une image à l'aide de jQuery

Taille et dimension du fichier image de téléchargement

var _URL = window.URL || window.webkitURL;
$("#myfile").change(function (e) {
    var file, img;
    if ((file = this.files[0])) {
        img = new Image();
        img.onload = function () {
            var wid = this.width;
            var ht = this.height;

            alert(this.width + " " + this.height);
            alert(wid);
            alert(ht);
        };

        img.src = _URL.createObjectURL(file);
    }
});
1
Jasbir Singh