Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alex Dias

Ler propriedades de uma imagem

Recommended Posts

Boa Noite!

 

Amigos, estou em busca de uma forma de desenvolver um Script PHP que consiga extrair informações das propriedades de uma imagem como: Descrição, Origem, Imagem e outros, aquelas informações quando clicamos do lado direito do mouse sobre a imagem.

 

Exemplo do que desejo extrair com PHP são essa informações disponíveis na imagem abaixo:

deserto.jpg

 

Será que existe essa possibilidade?

 

Desde já agradeço a atenção dos amigos no fórum a me ajudar nessa missão.

 

Muito Obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada nas Funções de EXIF

 

Requer a biblioteca EXIF instalada mas, pelo menos essa, é uma extensão mais comum de se encontrar nos servidores.

 

Se a extensão for uma problema, no PHPClasses tem um projeto que lê as informações EXIF da imagem SEM a necessidade da extensão, istoé, lendo e interpretando cada byte do arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em primeiro lugar quero agradecer ao nosso amigo Bruno Augusto, sua ajuda foi extraordinariamente importante, tenho 80% de minha dúvida solucionada, o restante de 20% é referente a informações como TÍTULO, ASSUNTO,MARCA e COMMENTÁRIO que eu ainda não conseguir extrair da imagem.

 

Segue abaixo as informações que faltam para solucionar minhas dúvidas.

propriedades2.jpg

 

Abaixo segue o Script PHP e a imagem que desejo extrair os dados como: TÍTULO, ASSUNTO,MARCA e COMMENTÁRIO.

<?php

echo "garca.jpg:<br />\n";
$exif = exif_read_data('20100306__MG_3213.jpg', 'IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />";

$exif = exif_read_data('garca.jpg', 0, true);
echo "garca.jpg:<br />\n";
foreach ($exif as $key => $section) {
   foreach ($section as $name => $val) {
       echo "$key.$name: $val<br />\n";
   }
}
?>

 

IMAGEM EM QUESTÃO

garca.jpg

Desde já agradeço a ajuda dos amigos do forum.

 

Um ótimo final de semana.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta trocar o segundo parâmetro da função. De repente aparecem mais dados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se você vai conseguir obter mais informações desta imagem. :ermm:

 

<?php

var_dump( exif_read_data( 'garca.jpg' ) );

 

Saída

array
 'FileName' => string 'garca.jpg' (length=9)
 'FileDateTime' => int 1317435560
 'FileSize' => int 120851
 'FileType' => int 2
 'MimeType' => string 'image/jpeg' (length=10)
 'SectionsFound' => string 'ANY_TAG, IFD0, THUMBNAIL, EXIF' (length=30)
 'COMPUTED' => 
   array
     'html' => string 'width="480" height="320"' (length=24)
     'Height' => int 320
     'Width' => int 480
     'IsColor' => int 1
     'ByteOrderMotorola' => int 1
     'ApertureFNumber' => string 'f/5.6' (length=5)
     'FocusDistance' => string '30.30m' (length=6)
     'Copyright' => string '(C)Amarildo Oliveira' (length=20)
     'Thumbnail.FileType' => int 2
     'Thumbnail.MimeType' => string 'image/jpeg' (length=10)
 'ImageDescription' => string 'Especie encontrata na Amazonia.' (length=31)
 'Make' => string 'Canon' (length=5)
 'Model' => string 'Canon EOS DIGITAL REBEL XS' (length=26)
 'XResolution' => string '72/1' (length=4)
 'YResolution' => string '72/1' (length=4)
 'ResolutionUnit' => int 2
 'Software' => string 'Adobe Photoshop Lightroom 3.3' (length=29)
 'DateTime' => string '2011:09:23 00:17:58' (length=19)
 'Artist' => string 'Amarildo Oliveira' (length=17)
 'Copyright' => string '(C)Amarildo Oliveira' (length=20)
 'Exif_IFD_Pointer' => int 318
 'THUMBNAIL' => 
   array
     'Compression' => int 6
     'XResolution' => string '72/1' (length=4)
     'YResolution' => string '72/1' (length=4)
     'ResolutionUnit' => int 2
     'JPEGInterchangeFormat' => int 948
     'JPEGInterchangeFormatLength' => int 6498
 'ExposureTime' => string '1/250' (length=5)
 'FNumber' => string '56/10' (length=5)
 'ExposureProgram' => int 2
 'ISOSpeedRatings' => int 200
 'UndefinedTag:0x8830' => int 0
 'ExifVersion' => string '0221' (length=4)
 'DateTimeOriginal' => string '2010:03:06 14:46:50' (length=19)
 'DateTimeDigitized' => string '2010:03:06 14:46:50' (length=19)
 'ShutterSpeedValue' => string '7965784/1000000' (length=15)
 'ApertureValue' => string '4970854/1000000' (length=15)
 'ExposureBiasValue' => string '1/3' (length=3)
 'MaxApertureValue' => string '5/1' (length=3)
 'SubjectDistance' => string '303/10' (length=6)
 'MeteringMode' => int 2
 'Flash' => int 16
 'FocalLength' => string '400/1' (length=5)
 'SubSecTimeOriginal' => string '02' (length=2)
 'SubSecTimeDigitized' => string '02' (length=2)
 'FocalPlaneXResolution' => string '3888000/876' (length=11)
 'FocalPlaneYResolution' => string '2592000/583' (length=11)
 'FocalPlaneResolutionUnit' => int 2
 'CustomRendered' => int 0
 'ExposureMode' => int 0
 'WhiteBalance' => int 1
 'SceneCaptureType' => int 0
 'UndefinedTag:0xA431' => string '1940409034' (length=10)
 'UndefinedTag:0xA432' => 
   array
     0 => string '100/1' (length=5)
     1 => string '400/1' (length=5)
     2 => string '0/0' (length=3)
     3 => string '0/0' (length=3)
 'UndefinedTag:0xA434' => string 'EF100-400mm f/4.5-5.6L IS USM' (length=29)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser que seja a mesma coisa que a biblioteca EXIF, mas pode ser que não também.

 

Mas ainda assim, exprimenta essa tal de PEL

 

Como o próprio autor diz, não é algo direcionado à usuários e sim a programadores, com várias classes e métodos para extrair, analisar, ler e até alterar as informações da imagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta trocar o segundo parâmetro da função. De repente aparecem mais dados...

 

Olá Bruno Augusto, troque o segundo parâmetro e os resultados continuam o mesmo!

 

Não sei se você vai conseguir obter mais informações desta imagem. :ermm:

 

<?php

var_dump( exif_read_data( 'garca.jpg' ) );

 

Saída

array
 'FileName' => string 'garca.jpg' (length=9)
 'FileDateTime' => int 1317435560
 'FileSize' => int 120851
 'FileType' => int 2
 'MimeType' => string 'image/jpeg' (length=10)
 'SectionsFound' => string 'ANY_TAG, IFD0, THUMBNAIL, EXIF' (length=30)
 'COMPUTED' => 
   array
     'html' => string 'width="480" height="320"' (length=24)
     'Height' => int 320
     'Width' => int 480
     'IsColor' => int 1
     'ByteOrderMotorola' => int 1
     'ApertureFNumber' => string 'f/5.6' (length=5)
     'FocusDistance' => string '30.30m' (length=6)
     'Copyright' => string '(C)Amarildo Oliveira' (length=20)
     'Thumbnail.FileType' => int 2
     'Thumbnail.MimeType' => string 'image/jpeg' (length=10)
 'ImageDescription' => string 'Especie encontrata na Amazonia.' (length=31)
 'Make' => string 'Canon' (length=5)
 'Model' => string 'Canon EOS DIGITAL REBEL XS' (length=26)
 'XResolution' => string '72/1' (length=4)
 'YResolution' => string '72/1' (length=4)
 'ResolutionUnit' => int 2
 'Software' => string 'Adobe Photoshop Lightroom 3.3' (length=29)
 'DateTime' => string '2011:09:23 00:17:58' (length=19)
 'Artist' => string 'Amarildo Oliveira' (length=17)
 'Copyright' => string '(C)Amarildo Oliveira' (length=20)
 'Exif_IFD_Pointer' => int 318
 'THUMBNAIL' => 
   array
     'Compression' => int 6
     'XResolution' => string '72/1' (length=4)
     'YResolution' => string '72/1' (length=4)
     'ResolutionUnit' => int 2
     'JPEGInterchangeFormat' => int 948
     'JPEGInterchangeFormatLength' => int 6498
 'ExposureTime' => string '1/250' (length=5)
 'FNumber' => string '56/10' (length=5)
 'ExposureProgram' => int 2
 'ISOSpeedRatings' => int 200
 'UndefinedTag:0x8830' => int 0
 'ExifVersion' => string '0221' (length=4)
 'DateTimeOriginal' => string '2010:03:06 14:46:50' (length=19)
 'DateTimeDigitized' => string '2010:03:06 14:46:50' (length=19)
 'ShutterSpeedValue' => string '7965784/1000000' (length=15)
 'ApertureValue' => string '4970854/1000000' (length=15)
 'ExposureBiasValue' => string '1/3' (length=3)
 'MaxApertureValue' => string '5/1' (length=3)
 'SubjectDistance' => string '303/10' (length=6)
 'MeteringMode' => int 2
 'Flash' => int 16
 'FocalLength' => string '400/1' (length=5)
 'SubSecTimeOriginal' => string '02' (length=2)
 'SubSecTimeDigitized' => string '02' (length=2)
 'FocalPlaneXResolution' => string '3888000/876' (length=11)
 'FocalPlaneYResolution' => string '2592000/583' (length=11)
 'FocalPlaneResolutionUnit' => int 2
 'CustomRendered' => int 0
 'ExposureMode' => int 0
 'WhiteBalance' => int 1
 'SceneCaptureType' => int 0
 'UndefinedTag:0xA431' => string '1940409034' (length=10)
 'UndefinedTag:0xA432' => 
   array
     0 => string '100/1' (length=5)
     1 => string '400/1' (length=5)
     2 => string '0/0' (length=3)
     3 => string '0/0' (length=3)
 'UndefinedTag:0xA434' => string 'EF100-400mm f/4.5-5.6L IS USM' (length=29)

 

Amigo, nada ainda, o resultado continua o mesmo, vamos continuar a pesquisar, assim que eu conseguir vou postar tudo aqui, isso vai ser importante de mais pra muita gente que trabalha como fotógrafo e utiliza Photoshop para inserir informações na imagem. Essa função vai ser importante na hora de fazer o upload das fotos para o website donde as informações das propriedades das imagem vão para o MySQL de forma simples e fácil sem necessidade de preencher formulário.

 

Abraços amigo, vamos continuar pensando!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse parser conseguiu ler essas tags do Photoshop, mas o código é um tanto quanto bagunçado e alguns dos muitos arquivos ainda estão com as tags de abertura curtas (<?).

 

Mas se você quer a funcionalidade, ele retorna MUITAS informações (mesmo!).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.