Hvordan få informasjon fra et bilde med Ruby

Innholdsfortegnelse

I dag er vi vant til å laste opp bildene våre til sosiale nettverk eller til "skyen" uten å tenke på hvilke data de har med seg, sikkert mange fortsatt ikke vet at de bærer metadata ("bildeinformasjon") som vi ikke ser med naken øye. Men hvis du høyreklikker med musen på et bilde og vi går til eiendommer, og vi ser etter at vi ser mye informasjon, så legger jeg igjen noen skjermbilder av hvordan informasjonen ser ut i Linux og Windows.

Ok, den informasjonen vi ser på bildene ovenfor er ikke den viktigste, de kan ikke vite så mye om oss, bortsett fra at vi har tatt bildet, faktisk hvis du tillater meg å ta posisjonen din, vil kameraet også ha stedet der bildet ble tatt, og i Windows kan det i det minste sees uten å ha spesifikke verktøy (det er på samme sted som det forrige bildet Egenskaper> Detaljer), se på følgende bilde (jeg har slettet informasjonen):

Hvis vi går til en side som ved å sette inn breddegrad og lengdegrad gir oss den nøyaktige adressen der bildet ble tatt, begynner en viss fare å eksistere, en ondsinnet person kan finne ut hvor vi bor.

FORSTØRRE

I denne opplæringen skal jeg lære en Ruby -kode som trekker ut metadata fra jpeg.webp, jpg.webp, selv om du også kan få dem fra tiff -bilder.

Det første vi trenger er å installere et eksternt bibliotek som heter exifr, for dette utfører vi følgende setning:

 perle installere exifr
La oss se koden, hvis du har programmert noe med rubin, vil det være veldig enkelt:
 krever 'exifr' image = '/home/ubuntu/solvetic.jpg.webp' if EXIFR :: JPEG.webp.new (image) .exif? skriv deretter ut "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 og skriv deretter ut "Latitude:", EXIFR :: JPEG.webp.new (image) .gps.latitude, "\ n" print "Longitude:", EXIFR :: JPEG.webp.new (image) .gps.longitude, " \ n "ende annet setter slutten" Ingen metadata "
Først importerer vi biblioteket, deklarerer en variabel med banen til bildet vårt og sjekker litt, så skal vi bare få egenskapene til bildet (hvis det er noen eiendom som ikke har noen verdi, forblir den ganske enkelt tom). I den siste delen av hvis vi vil sjekke om den har gps -data, slik at den ikke gir oss en feil hvis den er en nullverdi, hvis den gjør det, viser vi den på skjermen.

MerkHvor ser du teksten /home/ubuntu/solvetic.jpg.webp skal gå stien til bildet ditt.

Hvis vi kjører koden, har vi følgende konsollutgang:

Her er et postnummer med koden ovenfor:

metadata Ruby.zip 373 byte 148 Nedlastinger

Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave