Как получить информацию из фото с Руби

{title}

Сегодня мы привыкли загружать наши фотографии в социальные сети или в «облако», не задумываясь о том, что за данными они несут, наверняка многие еще не знают, что они несут метаданные («информацию об изображении»), которые мы не видим невооруженным глазом., Но если вы щелкнете правой кнопкой мыши по изображению и перейдете к свойствам и выполните поиск, мы увидим много информации, тогда я оставлю несколько скриншотов того, как эта информация выглядит в Linux и Windows.

{title}

{title}

Стоит того, что информация, которую мы видим на изображениях выше, не самая важная, они не могут много о нас знать, за исключением того факта, что мы сделали фотографию, в действительности, если вы позволите мне принять ваше местоположение, камера также будет иметь место, где была сделана фотография и, по крайней мере, в Windows вы можете увидеть без специальных инструментов (он находится в том же месте, что и предыдущее изображение Свойства> Детали ), посмотрите на следующее изображение (я удалил информацию):

{title}

Если мы перейдем на страницу, которая, добавляя широту и долготу, дает нам точный адрес, где была сделана фотография, начинает возникать определенная опасность, злонамеренный человек может узнать, где мы живем.

{title}

В этом уроке я покажу вам код на Ruby, который извлекает метаданные из изображений jpeg, jpg, хотя вы также можете получить их из изображений tiff.

Первое, что нам нужно, это установить внешнюю библиотеку с именем exifr, для этого мы выполним следующий оператор:

 gem install exifr 
Давайте посмотрим код, если вы что-то запрограммировали с помощью ruby, вы найдете его очень простым:
 требуют 'exifr' image = '/home/ubuntu/solvetic.webp' если EXIFR :: JPEG.new (image) .exif? затем напечатайте «Ширина:», EXIFR :: JPEG.new (изображение) .width, «\ n» напечатайте «Высота:», EXIFR :: JPEG.new (изображение) .height, «\ n» напечатайте «Модель камеры или мобильный: ", EXIFR :: JPEG.new (изображение) .model, " \ n "распечатать" Дата: ", EXIFR :: JPEG.new (изображение) .date_time, " \ n "если EXIFR :: JPEG.new (image) .gps, затем выведите «Latitude:», EXIFR :: JPEG.new (image) .gps.latitude, «\ n» напечатайте «Longitude:», EXIFR :: JPEG.new (image) .gps.longitude, "\ n" end else ставит конец "No metadata" 
Сначала мы импортируем библиотеку, объявляем переменную с путем к нашему изображению и делаем небольшую проверку, затем мы только извлекаем свойства изображения (если есть какое-либо свойство, которое не имеет значения, оно просто становится пустым). В заключительной части, если мы проверим, есть ли у него gps-данные, чтобы он не выдавал нам ошибку, если это нулевое значение, если они есть, мы показываем их на экране.

примечание

Где вы видите текст /home/ubuntu/solvetic.webp путь вашего изображения должен идти.

Если мы выполним код, у нас будет следующий вывод консоли:

{title}

Тогда я оставляю почтовый индекс с кодом выше:

metadatosRuby.zip 373 байта 78 скачиваний

  • 0