Comment obtenir des informations à partir d'une photo avec Ruby

Table des matières

Aujourd'hui, nous sommes habitués à télécharger nos photos sur les réseaux sociaux ou sur le "cloud" sans penser aux données qu'elles contiennent, beaucoup ne savent sûrement pas encore qu'elles contiennent des métadonnées ("informations d'image") que nous ne voyons pas avec le nu oeil. Mais si vous cliquez avec le bouton droit de la souris sur une image et que nous allons dans les propriétés et que nous recherchons de nombreuses informations, je laisse quelques captures d'écran de l'apparence de ces informations sous Linux et Windows.

Ok, cette information que nous voyons dans les images ci-dessus n'est pas la plus importante, ils ne peuvent pas savoir grand chose sur nous, sauf que nous avons pris la photo, en fait si vous me permettez de prendre votre position, l'appareil photo aura également l'endroit où la photo a été prise, et sous Windows au moins on peut la voir sans avoir d'outils spécifiques (elle est au même endroit que l'image précédente Propriétés> Détails), regardez l'image suivante (j'ai supprimé les informations):

Si nous allons sur une page qui, en insérant la latitude et la longitude, nous donne l'adresse exacte où la photo a été prise, un certain danger commence à exister, une personne malveillante peut découvrir où nous vivons.

AGRANDIR

Dans ce tutoriel, je vais enseigner un code Ruby qui extrait les métadonnées de jpeg.webp, jpg.webp, bien que vous puissiez également les obtenir à partir d'images tiff.

La première chose dont nous avons besoin est d'installer une bibliothèque externe appelée exifr, pour cela nous exécutons la phrase suivante :

 gem installer exifr
Voyons le code, si vous avez programmé quelque chose avec ruby ​​ce sera très simple :
 nécessite 'exifr' image = '/home/ubuntu/solvetic.jpg.webp' if EXIFR :: JPEG.webp.new (image) .exif? puis imprimez "Width:", EXIFR :: JPEG.webp.new (image) .width, "\ n" print "Height:", EXIFR :: JPEG.webp.new (image) .height, "\ n" print " Camera model or mobile : ", EXIFR :: JPEG.webp.new (image) .model," \ n " print" Date : ", EXIFR :: JPEG.webp.new (image) .date_time," \ n " if EXIFR :: JPEG.webp.new ( image) .gps puis imprimer "Latitude :", EXIFR :: JPEG.webp.new (image) .gps.latitude, "\ n" imprimer "Longitude :", EXIFR :: JPEG.webp.new (image) .gps.longitude, " \ n" end else met la fin "Aucune métadonnée"
Nous importons d'abord la bibliothèque, déclarons une variable avec le chemin de notre image et faisons une petite vérification, puis nous n'allons obtenir que les propriétés de l'image (s'il y a une propriété qui n'a pas de valeur, elle reste simplement vide). Dans la dernière partie du si nous allons vérifier s'il a des données GPS, afin qu'il ne nous donne pas d'erreur s'il s'agit d'une valeur nulle, si c'est le cas, nous l'affichons à l'écran.

NoterOù voyez-vous le texte /home/ubuntu/solvetic.jpg.webp devrait suivre le chemin de votre image.

Si nous exécutons le code, nous avons la sortie de console suivante :

Voici un zip avec le code ci-dessus :

métadonnées Ruby.zip 373 octets 148 Téléchargements

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif
wave wave wave wave wave