Hur man får information från ett foto med Ruby

Innehållsförteckning

Idag är vi vana vid att ladda upp våra foton till sociala nätverk eller till "molnet" utan att tänka på vilken data de bär bakom, säkert vet många fortfarande inte att de bär metadata ("bildinformation") som vi inte ser med nakna öga. Men om du högerklickar med musen på en bild och vi går till egenskaper och vi letar efter ser vi mycket information, så lämnar jag några skärmdumpar av hur den informationen ser ut i Linux och Windows.

Ok, den informationen som vi ser på bilderna ovan är inte den viktigaste, de kan inte veta mycket om oss, förutom att vi har tagit fotot, faktiskt om du tillåter mig att ta din plats, kommer kameran också att ha platsen där fotot togs, och i Windows kan det åtminstone ses utan att ha specifika verktyg (det är på samma plats som den tidigare bilden Egenskaper> Detaljer), titta på följande bild (jag har tagit bort informationen):

Om vi ​​går till en sida som när vi sätter in latitud och longitud ger oss den exakta adressen där fotot togs, börjar en viss fara existera, en skadlig person kan ta reda på var vi bor.

FÖRSTORA

I den här handledningen ska jag lära ut en Ruby -kod som extraherar metadata från jpeg.webp, jpg.webp, även om du också kan få dem från tiff -bilder.

Det första vi behöver är att installera ett externt bibliotek som heter exifr, för detta kör vi följande mening:

 pärla installera exifr
Låt oss se koden, om du har programmerat något med rubin blir det väldigt enkelt:
 kräver 'exifr' image = '/home/ubuntu/solvetic.jpg.webp' if EXIFR :: JPEG.webp.new (image) .exif? skriv sedan 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 skriver sedan ut "Latitude:", EXIFR :: JPEG.webp.new (image) .gps.latitude, "\ n" print "Longitude:", EXIFR :: JPEG.webp.new (image) .gps.longitude, " \ n "end else sätter slutet på" No metadata "
Först importerar vi biblioteket, deklarerar en variabel med sökvägen till vår bild och gör en liten kontroll, sedan kommer vi bara att få bildens egenskaper (om det finns någon egenskap som inte har något värde förblir den helt enkelt tom). I den sista delen av om vi kommer att kontrollera om den har gps -data, så att den inte ger oss ett fel om det är ett nollvärde, om det gör det, visar vi det på skärmen.

NoteraVar ser du texten /home/ubuntu/solvetic.jpg.webp bör gå vägen för din bild.

Om vi ​​kör koden har vi följande konsolutgång:

Här är en zip med koden ovan:

metadata Ruby.zip 373 byte 148 Nedladdningar

Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave