Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.artpages.com.br/deserto.jpg&key=7d77a78d3db7127610027a1d3e8077461026f6bfbbf497430edaba7c37660d29" alt="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!
Obrigado Bruno Augusto pela dica, ainda estou em busca de uma solução menos complicada. obrigadão.
Menos complicada em que sentido? Com a biblioteca exif_read_data() basta passar o arquivo.
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.
/applications/core/interface/imageproxy/imageproxy.php?img=http://artpages.com.br/propriedades2.jpg&key=fa39fa607aa293e053c63edcd5373bc7d5a9304de74bc66470f6f1816489ec92" alt="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
/applications/core/interface/imageproxy/imageproxy.php?img=http://artpages.com.br/garca.jpg&key=696d536fe3c1d63f0a56d15534a04cd32ae8eaf6b72290c49527b0c86dee877c" alt="garca.jpg" />
Desde já agradeço a ajuda dos amigos do forum.
Um ótimo final de semana.
Experimenta trocar o segundo parâmetro da função. De repente aparecem mais dados...
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)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.
>
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!
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!).
@Breno :lol: , não resisti.
@bruno
Você é um garimpeiro de primeira :joia:
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.