Kaip gauti informacijos iš nuotraukos su Ruby

Turinys

Šiandien esame įpratę įkelti savo nuotraukas į socialinius tinklus arba į „debesį“ negalvodami apie tai, kokius duomenis jie slepia, tikrai daugelis vis dar nežino, kad turi metaduomenis („vaizdo informaciją“), kurių nematome plika akimi. akis. Bet jei dešiniuoju pelės mygtuku spustelėkite vaizdą ir einame į ypatybes ir ieškome, kad matome daug informacijos, tada palieku keletą ekrano kopijų, kaip ta informacija atrodo „Linux“ ir „Windows“.

Gerai, ta informacija, kurią matome aukščiau esančiuose paveikslėliuose, nėra pati svarbiausia, jie negali daug apie mus žinoti, išskyrus tai, kad padarėme nuotrauką, iš tikrųjų, jei leisite man užfiksuoti jūsų buvimo vietą, fotoaparatas taip pat turės tą vietą, kur nuotrauka buvo padaryta ir bent jau sistemoje „Windows“ ją galima pamatyti neturint specialių įrankių (ji yra toje pačioje vietoje kaip ir ankstesnis vaizdas Ypatybės> Išsami informacija), pažiūrėkite į šį paveikslėlį (ištryniau informaciją):

Jei einame į puslapį, kuriame įterpiant platumą ir ilgumą nurodomas tikslus adresas, kuriame buvo padaryta nuotrauka, ima egzistuoti tam tikras pavojus, kenkėjiškas žmogus gali sužinoti, kur gyvename.

DIDELIS

Šioje pamokoje aš ketinu išmokyti Rubino kodo, kuris išskiria metaduomenis iš jpeg.webp, jpg.webp, nors juos taip pat galite gauti iš tiff vaizdų.

Pirmas dalykas, kurio mums reikia, yra įdiegti išorinę biblioteką, vadinamą exifr, tam vykdome šį sakinį:

 perlas įdiegti exifr
Pažiūrėkime kodą, jei užprogramavote kažką su rubinu, tai bus labai paprasta:
 reikalauti 'exifr' image = '/home/ubuntu/solvetic.jpg.webp', jei EXIFR :: JPEG.webp.new (vaizdas) .exif? tada spausdinkite „Plotis:“, EXIFR :: JPEG.webp.new (vaizdas). plotis, „\ n“ spausdinti „Aukštis:“, EXIFR :: JPEG.webp. naujas (vaizdas). aukštis, „\ n“ spausdinti „Fotoaparato modelis arba mobile: ", EXIFR :: JPEG.webp.new (vaizdas) .modelis," \ n "print" Date: ", EXIFR :: JPEG.webp.new (image) .date_time," \ n ", jei EXIFR :: JPEG.webp.new ( vaizdas) .gps tada atspausdinkite „Platuma:“, EXIFR :: JPEG.webp.new (vaizdas) .gps.latitude, „\ n“ print „Longitude:“, EXIFR :: JPEG.webp.new (image) .gps.longitude, " \ n „end else“ užbaigia „Nėra metaduomenų“
Pirmiausia importuojame biblioteką, deklaruojame kintamąjį su savo atvaizdo keliu ir šiek tiek patikriname, tada gausime tik vaizdo savybes (jei yra kokia nors nuosavybė, kuri neturi jokios vertės, ji tiesiog lieka tuščia). Paskutinėje „if“ dalyje patikrinsime, ar ji turi GPS duomenų, kad ji mums nepateiktų klaidos, jei tai yra nulinė vertė, jei taip, tai parodysime ekrane.

PastabaKur matai tekstą /home/ubuntu/solvetic.jpg.webp turėtų eiti savo įvaizdžio keliu.

Jei vykdysime kodą, turėsime tokią konsolės išvestį:

Čia yra pašto kodas su aukščiau esančiu kodu:

metaduomenys Ruby.zip 373 baitai 148 atsisiuntimai

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave