Comment puis-je obtenir la taille du fichier, la hauteur et la largeur de l'image avant de le télécharger sur mon site Web, avec jQuery ou JavaScript?
98
Comment puis-je obtenir la taille du fichier, la hauteur et la largeur de l'image avant de le télécharger sur mon site Web, avec jQuery ou JavaScript?
Réponses:
Téléchargement d'images multiples avec aperçu des données d'informations
Utilisation de HTML5 et de l' API File
Exemple utilisant l' API URL
Les sources d'images seront une URL représentant l'objet Blob
<img src="blob:null/026cceb9-edr4-4281-babb-b56cbf759a3d">
Exemple d'utilisation de l' API FileReader
Au cas où vous auriez besoin de sources d'images sous forme de longues chaînes de données encodées en Base64
<img src="data:image/png;base64,iVBORw0KGg... ...lF/++TkSuQmCC=">
la source
Si vous pouvez utiliser le plugin de validation jQuery, vous pouvez le faire comme ceci:
Html:
JavaScript:
La fonction est passée en tant que fonction ab onload.
Le code est tiré d' ici
la source
Démo
Je ne sais pas si c'est ce que vous voulez, mais juste un exemple simple:
la source
Voici un exemple purement JavaScript de sélection d'un fichier image, de son affichage, de lecture en boucle des propriétés de l'image, puis de redimensionnement de l'image du canevas dans une balise IMG et de définition explicite du type d'image redimensionnée sur jpeg.
Si vous cliquez avec le bouton droit sur l'image du haut, dans la balise canevas, et choisissez Enregistrer le fichier sous, il sera par défaut au format PNG. Si vous cliquez avec le bouton droit de la souris et que vous enregistrez le fichier comme image inférieure, il sera par défaut au format JPEG. Tout fichier de plus de 400 px de largeur est réduit à 400 px de largeur et à une hauteur proportionnelle au fichier d'origine.
HTML
SCÉNARIO
Voici un jsFiddle:
jsFiddle Choisir, afficher, obtenir des propriétés et redimensionner un fichier image
Dans jsFiddle, un clic droit sur l'image du haut, qui est un canevas, ne vous donnera pas les mêmes options d'enregistrement qu'un clic droit sur l'image du bas dans une balise IMG.
la source
Pour autant que je sache, il n'y a pas de moyen facile de le faire car Javascript / JQuery n'a pas accès au système de fichiers local. Il existe de nouvelles fonctionnalités dans html 5 qui vous permettent de vérifier certaines métadonnées telles que la taille du fichier, mais je ne suis pas sûr que vous puissiez réellement obtenir les dimensions de l'image.
Voici un article que j'ai trouvé concernant les fonctionnalités html 5 et une solution de contournement pour IE qui implique l'utilisation d'un contrôle ActiveX. http://jquerybyexample.blogspot.com/2012/03/how-to-check-file-size-before-uploading.html
la source
J'ai donc commencé à expérimenter les différentes choses que l'API FileReader avait à offrir et j'ai pu créer une balise IMG avec une URL de données.
Inconvénient: cela ne fonctionne pas sur les téléphones mobiles, mais cela fonctionne bien sur Google Chrome.
(voir ceci sur un jsfiddle à http://jsfiddle.net/eD2Ez/530/ )
(voir le jsfiddle original que j'ai ajouté sur http://jsfiddle.net/eD2Ez/ )
la source
Un exemple de validation jQuery fonctionnel:
la source