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ć exifrZobaczmy 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ń