Como obter informações de uma foto com Ruby

Índice

Hoje estamos acostumados a enviar nossas fotos para redes sociais ou para a "nuvem" sem pensar nos dados que elas carregam, com certeza muitos ainda não sabem que elas carregam metadados ("informações de imagem") que não vemos nus olho Mas se você clicar com o botão direito do mouse em uma imagem e formos em propriedades e procurarmos ver muitas informações, deixo algumas imagens de como essas informações se parecem no Linux e no Windows.

Ok, essa informação que vemos nas imagens acima não é a mais importante, eles não podem saber muito sobre nós, exceto que nós tiramos a foto, na verdade se você me permitir tirar sua localização, a câmera também terá o local onde a foto foi tirada e pelo menos no Windows ela pode ser vista sem ter ferramentas específicas (está no mesmo lugar da imagem anterior Propriedades> Detalhes), olhe para a seguinte imagem (eu apaguei as informações):

Se formos a uma página que ao inserir a latitude e longitude nos dá o endereço exato onde a foto foi tirada, começa a existir um certo perigo, uma pessoa mal-intencionada pode descobrir onde moramos.

PROLONGAR

Neste tutorial vou ensina um código Ruby que extrai metadados de jpeg.webp, jpg.webp, embora você também possa obtê-los em imagens tiff.

A primeira coisa que precisamos é instalar uma biblioteca externa chamada exifr, para isso executamos a seguinte frase:

 gem install exifr
Vamos ver o código, se você programou algo com Ruby, será muito simples:
 requer 'exifr' image = '/home/ubuntu/solvetic.jpg.webp' se EXIFR :: JPEG.webp.new (imagem) .exif? em seguida, imprima "Largura:", EXIFR :: JPEG.webp.new (imagem) .width, "\ n" imprima "Altura:", EXIFR :: JPEG.webp.new (imagem) .height, "\ n" imprimir "Modelo da câmera ou mobile: ", EXIFR :: JPEG.webp.new (imagem) .model," \ n "imprimir" Data: ", EXIFR :: JPEG.webp.new (imagem) .date_time," \ n "se EXIFR :: JPEG.webp.new ( imagem) .gps, em seguida, imprima "Latitude:", EXIFR :: JPEG.webp.new (imagem) .gps.latitude, "\ n" imprima "Longitude:", EXIFR :: JPEG.webp.new (imagem) .gps.longitude, " \ n "end else coloca" No metadata "end
Primeiro importamos a biblioteca, declaramos uma variável com o caminho da nossa imagem e fazemos uma pequena verificação, então vamos apenas pegar as propriedades da imagem (se houver alguma propriedade que não tenha valor, ela simplesmente fica em branco). Na parte final do se vamos verificar se tem dados gps, para que não nos dê erro se for um valor nulo, se tiver, mostramos na tela.

ObservaçãoOnde você vê o texto /home/ubuntu/solvetic.jpg.webp deve seguir o caminho da sua imagem.

Se executarmos o código, teremos a seguinte saída de console:

Aqui está um CEP com o código acima:

metadados Ruby.zip 373 bytes 148 downloads

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave