Jak získat informace z fotografie pomocí Ruby

Obsah

Dnes jsme zvyklí nahrávat naše fotografie na sociální sítě nebo do „cloudu“, aniž bychom přemýšleli o tom, jaká data za sebou nosí, určitě mnozí stále nevědí, že nesou metadata („obrazové informace“), která nevidíme nahá oko. Pokud ale kliknete pravým tlačítkem myši na obrázek a přejdeme na vlastnosti a hledáme, že vidíme spoustu informací, zanechám několik screenshotů, jak tyto informace vypadají v Linuxu a Windows.

Dobře, informace, které vidíme na výše uvedených obrázcích, nejsou nejdůležitější, nemohou o nás mnoho vědět, kromě toho, že jsme pořídili fotografii. Pokud mi dovolíte zachytit vaši polohu, fotoaparát bude mít také místo, kde fotografie byla pořízena a ve Windows je alespoň vidět bez konkrétních nástrojů (je na stejném místě jako předchozí obrázek Vlastnosti> Podrobnosti), podívejte se na následující obrázek (informace jsem smazal):

Pokud přejdeme na stránku, která nám při vložení zeměpisné šířky a délky poskytne přesnou adresu, kde byla fotografie pořízena, začne existovat určité nebezpečí, zlomyslný člověk může zjistit, kde žijeme.

ZVĚTŠIT

V tomto tutoriálu se chystám naučte kód Ruby, který extrahuje metadata z jpeg.webp, jpg.webp, i když je můžete získat také z obrázků TIFF.

První věc, kterou potřebujeme, je nainstalovat externí knihovnu s názvem exifr, proto spustíme následující větu:

 drahokam nainstalovat exifr
Podívejme se na kód, pokud jste něco naprogramovali pomocí ruby, bude to velmi jednoduché:
 vyžadovat 'exifr' image = '/home/ubuntu/solvetic.jpg.webp', pokud EXIFR :: JPEG.webp.new (image) .exif? poté vytiskněte "Šířka:", EXIFR :: JPEG.webp.new (obrázek). šířka, "\ n" tisk "Výška:", EXIFR :: JPEG.webp.new (obrázek). výška, "\ n" tisk "Model fotoaparátu nebo mobilní: ", EXIFR :: JPEG.webp.new (obrázek) .model," \ n "tisk" Datum: ", EXIFR :: JPEG.webp.new (obrázek) .datum_času," \ n "pokud EXIFR :: JPEG.webp.new ( obrázek) .gps poté vytiskne "Latitude:", EXIFR :: JPEG.webp.new (obrázek) .gps.latitude, "\ n" tisk "Zeměpisná délka:", EXIFR :: JPEG.webp.new (obrázek) .gps.longitude, " \ n "end else znamená konec" Žádná metadata "
Nejprve importujeme knihovnu, deklarujeme proměnnou s cestou našeho obrázku a provedeme malou kontrolu, poté teprve získáme vlastnosti obrázku (pokud existuje nějaká vlastnost, která nemá žádnou hodnotu, zůstane jednoduše prázdná). V poslední části if zkontrolujeme, zda má data gps, aby nám nedala chybu, pokud je to nulová hodnota, pokud ano, zobrazíme to na obrazovce.

PoznámkaKde vidíte text /home/ubuntu/solvetic.jpg.webp by měl jít cestou vašeho obrázku.

Pokud spustíme kód, máme následující výstup konzoly:

Zde je zip s výše uvedeným kódem:

metadata Ruby.zip 373 bytů 148 stažení

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave