Hoe informatie uit een foto te halen met Ruby

Inhoudsopgave

Tegenwoordig zijn we gewend om onze foto's naar sociale netwerken of naar de "cloud" te uploaden zonder na te denken over welke gegevens ze achter zich hebben, velen weten zeker nog steeds niet dat ze metadata ("beeldinformatie") bij zich hebben die we niet zien met de blote oog. Maar als je met de rechtermuisknop op een afbeelding klikt en we gaan naar eigenschappen en we zoeken naar veel informatie, dan laat ik enkele screenshots achter van hoe die informatie eruitziet in Linux en Windows.

Ok, die informatie die we in de bovenstaande afbeeldingen zien is niet de belangrijkste, ze kunnen niet veel over ons weten, behalve dat we de foto hebben gemaakt, eigenlijk als je me toestaat om je locatie te nemen, zal de camera ook de plaats hebben waar de foto is gemaakt en in Windows is deze tenminste te zien zonder specifieke hulpmiddelen (deze bevindt zich op dezelfde plaats als de vorige afbeelding Eigenschappen> Details), kijk naar de volgende afbeelding (ik heb de informatie verwijderd):

Als we naar een pagina gaan die bij het invoegen van de lengte- en breedtegraad ons het exacte adres geeft waar de foto is genomen, begint een zeker gevaar te bestaan, een kwaadwillende kan erachter komen waar we wonen.

VERGROTEN

In deze tutorial ga ik leer een Ruby-code die metadata extraheert uit jpeg.webp, jpg.webp, hoewel je ze ook van tiff-afbeeldingen kunt krijgen.

Het eerste dat we nodig hebben is het installeren van een externe bibliotheek genaamd exifr, hiervoor voeren we de volgende zin uit:

 edelsteen installeren exifr
Laten we de code eens bekijken, als je iets met ruby ​​hebt geprogrammeerd, zal het heel eenvoudig zijn:
 vereisen 'exifr' image = '/home/ubuntu/solvetic.jpg.webp' als EXIFR :: JPEG.webp.new (afbeelding) .exif? print vervolgens "Width:", EXIFR :: JPEG.webp.new (afbeelding) .width, "\ n" print "Height:", EXIFR :: JPEG.webp.new (afbeelding) .height, "\ n" print "Cameramodel of mobiel: ", EXIFR :: JPEG.webp.new (afbeelding) .model," \ n "print" Datum: ", EXIFR :: JPEG.webp.new (afbeelding) .date_time," \ n "if EXIFR :: JPEG.webp.new ( afbeelding) .gps print vervolgens "Latitude:", EXIFR :: JPEG.webp.new (afbeelding) .gps.latitude, "\ n" print "Longitude:", EXIFR :: JPEG.webp.new (afbeelding) .gps.longitude, " \ n" end else zet "Geen metadata" end
Eerst importeren we de bibliotheek, declareren een variabele met het pad van onze afbeelding en doen een kleine controle, dan krijgen we alleen de eigenschappen van de afbeelding (als er een eigenschap is die geen waarde heeft, blijft deze gewoon leeg). In het laatste deel van het als we zullen controleren of het gps-gegevens heeft, zodat het ons geen foutmelding geeft als het een null-waarde is, als dat zo is, laten we het op het scherm zien.

OpmerkingWaar zie je de tekst? /home/ubuntu/solvetic.jpg.webp moet het pad van uw afbeelding volgen.

Als we de code uitvoeren, hebben we de volgende console-uitvoer:

Hier is een zip met de bovenstaande code:

metagegevens Ruby.zip 373 bytes 148 Downloads

Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave