Как да получите информация от снимка с Ruby

Съдържание

Днес сме свикнали да качваме снимките си в социалните мрежи или в „облака“, без да мислим какви данни носят зад себе си, със сигурност мнозина все още не знаят, че носят метаданни („информация за изображението“), които не виждаме с голи око. Но ако щракнете с десния бутон на мишката върху изображение и отидем в свойствата и търсим, че виждаме много информация, тогава оставям няколко екранни снимки как изглежда тази информация в Linux и Windows.

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

Ако отидем на страница, която при въвеждане на географска ширина и дължина ни дава точния адрес, където е направена снимката, започва да съществува определена опасност, злонамерен човек може да разбере къде живеем.

Увеличете

В този урок ще отида научете Ruby код, който извлича метаданни от jpeg.webp, jpg.webp, въпреки че можете да ги получите и от tiff изображения.

Първото нещо, от което се нуждаем, е да инсталираме външна библиотека, наречена exifr, за това изпълняваме следното изречение:

 gem install exifr
Нека да видим кода, ако сте програмирали нещо с ruby ​​ще бъде много просто:
 изискват 'exifr' image = '/home/ubuntu/solvetic.jpg.webp' ако EXIFR :: JPEG.webp.new (изображение) .exif? след това отпечатайте "Width:", EXIFR :: JPEG.webp.new (image) .width, "\ n" print "Height:", EXIFR :: JPEG.webp.new (image) .height, "\ n" print "Модел на камерата или 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 след това отпечатайте "Latitude:", EXIFR :: JPEG.webp.new (image) .gps.latitude, "\ n" print "Longitude:", EXIFR :: JPEG.webp.new (image) .gps.longitude, " \ n "end else поставя" No metadata "край
Първо импортираме библиотеката, декларираме променлива с пътя на нашето изображение и правим малка проверка, след това ще получим само свойствата на изображението (ако има някакво свойство, което няма стойност, то просто остава празно). В последната част на if ще проверим дали има GPS данни, така че да не ни даде грешка, ако е нулева стойност, ако има, ние го показваме на екрана.

ЗабележкаКъде виждате текста /home/ubuntu/solvetic.jpg.webp трябва да върви по пътя на вашето изображение.

Ако изпълним кода, имаме следния конзолен изход:

Ето цип с кода по -горе:

метаданни Ruby.zip 373 байта 148 изтегляния

Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave