Oi pessoal,
Há como extrair os dados de uma figura e expor estes dados?
Explico melhor: em uma galeria de fotos, quando você clica em uma miniatura, a foto aparece do lado em tamanho maior e logo abaixo os dados que vem internos da foto (tiradas por digitais). Dados como velocidade do obturador, dados de lente, tempo de exposição, etc.
Tem como fazer isso em javascript? Como?
Tem como dar uma força ai gente?

Extrair E Expor Dados De Uma Foto
Started By rusber, 27/01/2006, 20:26
3 replies to this topic
#1
Posted 27/01/2006, 20:26
#2
Posted 27/01/2006, 21:14
Não tem como =S .
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador
#3
Posted 05/02/2006, 21:06
Oi, rusber! Td bem?
Bom.. Infelizmente, realmente não existe uma forma. Mas pq? Pelo fato d q não tem como abrir arquivos para leitura a partir do JavaScript. Se vc já trabalhou com alguma linguagem de programação como o PHP, saberá do q estou falando qdo eu disser q ñ existe uma função fopen() no JavaScript.
E mesmo se existisse, um problema seria criado. Vc tem uma página pessoal q está armazenada num servidor, certo? Pois bem... O JavaScript trabalha dentro da máquina do usuário da sua página. Então, se ele conseguisse abrir um arquivo para leitura de seus dados, ele só iria conseguir abrir arquivos locais da máquina deste usuário. Não abrir um arquivo de foto que está lá no servidor. Entendeu?
Mas existe uma solução...
Suponhamos q seu servidor possui alguma linguagem script disponível para processamento. Por exemplo, PHP. Ou até mesmo ASP. Desta forma, dentro do servidor vc poderia abrir o arquivo da imagem, ler os dados EXIF q vc gostaria, e mandar os dados para a página. Mesmo q vc não queira exibi-los logo de cara, vc pode guardar as informações dentro de variáveis do JavaScript e tratá-las depois dentro do JavaScript. Desta forma vc não estaria abrindo dados EXIF de arquivos de fotos, mas sim, tratando STRING dentro do JavaScript. Entendeu? Se não, diga-me o q está obscuro q eu te explico melhor. Montei um exemplo no script aí embaixo... O exemplo está usando PHP e JavaScript, e estou até fazendo a busca dos dados EXIF em forma de função pra vc poder usar com mais facilidade.
Desta forma eu coloquei todos os dados EXIF do arquivo passado pra função na variável do JavaScript chamada dadosEXIF, substituindo todos os caracteres de nova linha pela seqüência de caracteres "|||", ou seja, ao invés de o código gerado ser assim:
Vai ficar assim:
Desta forma todo o EXIF será colocado em uma única linha. Depois basta tratar este conteúdo (esta STRING) via JavaScript, podendo exibir onde vc quiser na página, na hora q vc quiser.
Não sei se te ajudei, não sei se esta solução resolve, mas já é uma saída...
Qquer coisa, é só perguntar!
Um abraço,
Thales Medeiros.
Bom.. Infelizmente, realmente não existe uma forma. Mas pq? Pelo fato d q não tem como abrir arquivos para leitura a partir do JavaScript. Se vc já trabalhou com alguma linguagem de programação como o PHP, saberá do q estou falando qdo eu disser q ñ existe uma função fopen() no JavaScript.
E mesmo se existisse, um problema seria criado. Vc tem uma página pessoal q está armazenada num servidor, certo? Pois bem... O JavaScript trabalha dentro da máquina do usuário da sua página. Então, se ele conseguisse abrir um arquivo para leitura de seus dados, ele só iria conseguir abrir arquivos locais da máquina deste usuário. Não abrir um arquivo de foto que está lá no servidor. Entendeu?
Mas existe uma solução...
Suponhamos q seu servidor possui alguma linguagem script disponível para processamento. Por exemplo, PHP. Ou até mesmo ASP. Desta forma, dentro do servidor vc poderia abrir o arquivo da imagem, ler os dados EXIF q vc gostaria, e mandar os dados para a página. Mesmo q vc não queira exibi-los logo de cara, vc pode guardar as informações dentro de variáveis do JavaScript e tratá-las depois dentro do JavaScript. Desta forma vc não estaria abrindo dados EXIF de arquivos de fotos, mas sim, tratando STRING dentro do JavaScript. Entendeu? Se não, diga-me o q está obscuro q eu te explico melhor. Montei um exemplo no script aí embaixo... O exemplo está usando PHP e JavaScript, e estou até fazendo a busca dos dados EXIF em forma de função pra vc poder usar com mais facilidade.
<? function buscaEXIF($arquivo) { $conteudo=""; $fp=fopen($arquivo,"r"); while(!feof($fp)) $conteudo.=fgets($fp, filesize($path)); $posini=strpos($conteudo, "<x:xmpmeta"); $posfim=strpos($conteudo, "</x:xmpmeta>"); $dados=substr($conteudo, $posini, $posfim-$posini+12); return str_replace("\r\n", "|||", $dados); } ?><html><head><title>Título</title> <script language=JavaScript> var dadosEXIF='<?=buscaEXIF("fotos/arquivo.jpg")?>'; </script></head> <body> página </body></html>
Desta forma eu coloquei todos os dados EXIF do arquivo passado pra função na variável do JavaScript chamada dadosEXIF, substituindo todos os caracteres de nova linha pela seqüência de caracteres "|||", ou seja, ao invés de o código gerado ser assim:
<script language=JavaScript> var dadosEXIF='<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="3.1.1-111"> <rdf:RDF.....
Vai ficar assim:
<script language=JavaScript> var dadosEXIF='<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="3.1.1-111">||| <rdf:RDF.....
Desta forma todo o EXIF será colocado em uma única linha. Depois basta tratar este conteúdo (esta STRING) via JavaScript, podendo exibir onde vc quiser na página, na hora q vc quiser.
Não sei se te ajudei, não sei se esta solução resolve, mas já é uma saída...
Qquer coisa, é só perguntar!
Um abraço,
Thales Medeiros.
Sucesso é ganhar dinheiro fazendo o que você faria de graça.
#4
Posted 06/02/2006, 07:40
Ok Thales,
Valeu muito pelo esclarecimento. Ainda não conheço o suficiente de PHP, mas isso é questão de tempo.
Vou fazer bom uso de seu código.
Abraços,
Rúsber
Valeu muito pelo esclarecimento. Ainda não conheço o suficiente de PHP, mas isso é questão de tempo.
Vou fazer bom uso de seu código.
Abraços,
Rúsber
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)