Oui, c’est possible de récupérer la totalité des métadonnées d’une image en JavaScript pur, en JQuery et avec une autre librairie.
Voici 3 exemples de récupérations de métadonnées :
-
En JavaScript pur, tu peux utiliser l’objet Image pour récupérer les métadonnées de l’image, comme sa taille, son type, sa largeur, sa hauteur, etc.
-
En JQuery, tu peux utiliser la fonction $.get() pour récupérer les métadonnées de l’image, comme son chemin, son type, sa résolution, etc.
-
Avec une autre librairie, tu peux utiliser le module ImageMagick pour récupérer les métadonnées de l’image, comme sa date de création, sa date de modification, sa taille, sa profondeur de couleur, etc.
JS Pur
let image = new Image();
image.src = 'path/to/image.jpg';
let imageWidth = image.width;
let imageHeight = image.height;
let imageType = image.type;
Avec jQuery
$.get('/images/image.jpg', function(data) {
var imagePath = data.path;
var imageType = data.type;
var imageResolution = data.resolution;
console.log('Image path: ' + imagePath);
console.log('Image type: ' + imageType);
console.log('Image resolution: ' + imageResolution);
});
Avec ImageMagick
L’utilisation de ImageMagick en JavaScript peut être faite grâce à son api. Il est possible d’utiliser la méthode identify pour obtenir les métadonnées d’une image. Par exemple, la commande suivante permet d’obtenir la date de création, la date de modification, la taille et la profondeur de couleur d’une image:
const imageMagick = require('imagemagick');
imageMagick.identify(['image.jpg'], (err, output) => {
if (err) throw err;
console.log(output);
});
Cette commande retournera un objet contenant les métadonnées suivantes :
{
format: 'JPEG',
width: 800,
height: 600,
depth: 8,
createdAt: '2018-10-01 14:10:45',
modifiedAt: '2018-10-01 14:10:45'
}
La méthode readMetadata est très similaire à identify, mais elle retourne un objet plus détaillé contenant toutes les métadonnées de l’image. Ceux-ci peuvent inclure des informations supplémentaires telles que les informations EXIF, les métadonnées IPTC et les informations de copyright. Par exemple, la commande suivante permet d’obtenir toutes les métadonnées d’une image :
const imageMagick = require('imagemagick');
imageMagick.readMetadata('image.jpg', (err, output) => {
if (err) throw err;
console.log(output);
});
Cette commande retournera un objet plus détaillé contenant toutes les métadonnées de l’image, y compris les informations EXIF, IPTC et copyright :
{
format: 'JPEG',
width: 800,
height: 600,
depth: 8,
createdAt: '2018-10-01 14:10:45',
modifiedAt: '2018-10-01 14:10:45',
exif: {
...
},
iptc: {
...
},
copyright: {
...
}
}
En complément de la réponse de @ache: node-exif
Node-exif est un module Node.js qui permet de lire les métadonnées EXIF d’une image. Il prend en charge les formats JPEG, TIFF et RAW.
[en cours de correction suite à un retour + fautes d’étourderie]