Jak uzyskać informacje ze zdjęcia z Ruby

Spisie treści

Dziś jesteśmy przyzwyczajeni do przesyłania naszych zdjęć do sieci społecznościowych lub „chmury” bez zastanawiania się, jakie dane noszą, z pewnością wielu nadal nie wie, że niosą metadane („informacje o obrazie”), których nie widzimy nago oko . Ale jeśli klikniesz prawym przyciskiem myszy na obrazie i przejdziemy do właściwości i szukamy, widzimy dużo informacji, zostawiam kilka zrzutów ekranu, jak te informacje wyglądają w systemie Linux i Windows.

Ok, że informacje, które widzimy na powyższych zdjęciach nie są najważniejsze, niewiele o nas wiedzą, poza tym, że zrobiliśmy zdjęcie, właściwie jeśli pozwolisz mi zrobić lokalizację, aparat będzie miał również miejsce, w którym zdjęcie zostało zrobione, a w Windows przynajmniej można je zobaczyć bez posiadania specjalnych narzędzi (jest w tym samym miejscu co poprzedni obraz Właściwości> Szczegóły), spójrz na poniższy obrazek (informacje usunąłem):

Jeśli przejdziemy na stronę, która po wstawieniu długości i szerokości geograficznej podaje nam dokładny adres, pod którym zdjęcie zostało zrobione, zaczyna istnieć pewne niebezpieczeństwo, złośliwa osoba może dowiedzieć się, gdzie mieszkamy.

POWIĘKSZAĆ

W tym samouczku zamierzam nauczyć kodu Rubiego, który wyodrębnia metadane z jpeg.webp, jpg.webp, chociaż można je również uzyskać z obrazów tiff.

Pierwszą rzeczą, jakiej potrzebujemy, jest zainstalowanie zewnętrznej biblioteki o nazwie exifr, w tym celu wykonujemy następujące zdanie:

 klejnot zainstalować exifr
Zobaczmy kod, jeśli zaprogramowałeś coś rubinem, będzie to bardzo proste:
 wymagają 'exifr' image = '/home/ubuntu/solvetic.jpg.webp' jeśli EXIFR :: JPEG.webp.new (obraz) .exif? następnie drukuj "Width:", EXIFR :: JPEG.webp.new (obraz) .width, "\ n" drukuj "Wysokość:", EXIFR :: JPEG.webp.new (obraz) .height, "\ n" print "Model aparatu lub mobile: ", EXIFR :: JPEG.webp.new (obraz) .model," \ n "drukuj" Data: ", EXIFR :: JPEG.webp.new (obraz) .date_time," \ n "jeśli EXIFR :: JPEG.webp.new ( obraz) .gps następnie drukuj "Latitude:", EXIFR :: JPEG.webp.new (obraz) .gps.latitude, "\ n" drukuj "Długość:", EXIFR :: JPEG.webp.new (obraz) .gps.longitude, " \ n" end else oznacza koniec "Brak metadanych"
Najpierw importujemy bibliotekę, deklarujemy zmienną ze ścieżką naszego obrazu i trochę sprawdzamy, a następnie otrzymamy tylko właściwości obrazu (jeśli jest jakaś właściwość, która nie ma wartości, po prostu pozostaje pusta). W końcowej części if sprawdzimy, czy ma dane gps, aby nie dało nam błędu, jeśli jest to wartość pusta, jeśli tak, pokazujemy to na ekranie.

NotatkaGdzie widzisz tekst /home/ubuntu/solvetic.jpg.webp powinien iść ścieżką twojego wizerunku.

Jeśli uruchomimy kod, mamy następujące wyjście konsoli:

Oto kod pocztowy z powyższym kodem:

metadane Ruby.zip 373 bajty 148 pobrań

Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave