Pergunta

Tenho interesse em analisar o exiftool resultado com uma api java ou algo assim.

Venho pesquisando, mas não encontrei nenhum exemplo.Por exemplo, como eu poderia obter esses resultados em meu projeto java?

ExifTool Número De Versão :8.22

Nome Do Arquivo :ExifTool.jpg

Diretório :t/imagens de Arquivo

Tamanho :24 kB do Arquivo Data/Hora da Modificação

Etc..Estou procurando por "como" ou algo parecido.

Foi útil?

Solução

ExifTool (para Java) é projetado para ser simples de usar e robusto Java abstração de Phil Harvey ExifTool.Eu fiz apenas o primeiro lançamento, esta semana, após a incubação de um projecto, sob a imgscalr projeto guarda-chuva por um tempo.

O projeto está sob o comercial-friendly licença Apache 2.

Meu objetivo para a biblioteca não é apenas para abstrair o processo externo código da execução do chamador (como a maioria das outras camadas de abstração de são parecendo fazer), mas, na verdade, o design de uma capa tão forte integração e resistentes, vou esclarecer o que quero dizer aqui mais tarde), tratar os casos de sua ExifTool classe exatamente como você faria se ExifTool foi escrito em Java.

Nesta versão inicial, eu apoio a leitura de dados de tag (irá adicionar escrito em uma versão futura) e é tão simples como este:

File image = // path to some image
ExifTool tool = new ExifTool();

Map<Tag, String> valueMap =
    tool.getImageMeta(image, Tag.GPS_LATITUDE, Tag.GPS_LONGITUDE);

System.out.println("Lat: " + valueMap.get(Tag.GPS_LATITUDE) +
    "\tLong: " + valueMap.get(Tag.GPS_LONGITUDE));

Usando o ExifTool no "novo" modo daemon" (-stay_open Verdadeira linha cmd) também é suportado e ativando o suporte para ele é tão fácil como criar o seu ExifTool instância da seguinte forma:

ExifTool tool = new ExifTool(Feature.STAY_OPEN);

A documentação sobre como usar o ExifTool classe é extensa, cobrindo tudo, desde a concepção para o desempenho de segurança do thread.

Além de fazer uso de ExifTool simples de Java, a classe emprega uma quantidade considerável de precauções para minimizar problemas de tempo de execução, bem como corretamente a captura e a comunicação de qualquer e todos os erros que possam surgir no bem documentado formas (em vez de deixar a surpresa exceções borbulhar das principais classes de Java).

Eu estava tão pedante com essa manipulação de exceção e de recuperação de erro, porque a classe é projetado para permitir que você utilize o ExifTool em uma alta disponibilidade do ambiente como um movimentado aplicativo web.Eu não queria apenas para embrulhar Processo simples objetos, em seguida, jogar minhas mãos no ar, como se algo explodiu.Eu sabia que eu (e qualquer outra pessoa usando a classe) seria necessário um bem concebido API para permitir uma fácil recuperação de erro.

Por exemplo, tentar usar o ExifTool em modo daemon fará com que a classe a seleção subjacente instalar o ExifTool para obter suporte para esse recurso e lançar uma UnsupportedFeatureException com recomendações sobre como contornar o problema, se ele não é suportado.

Além do pré-condição verificação, para garantir que o uso da classe, nomeadamente no modo daemon) não vazar nativos do sistema operacional bem como de processos de Entrada/OutputStreams usado para se comunicar com eles, a classe fornece uma auto-segmento de limpeza, que, depois de um intervalo especificado de inatividade (o padrão é 10 minutos) será encerrado o processo externo de forma limpa e a leitura/gravação de fluxos, tornando o ocioso instância de ExifTool leve e fácil de manter em torno de re-uso.

Todos os recursos são re-inicializado na próxima chamada para a classe de analisar mais de metadados então não há necessidade de jogar fora e re-criar novas instâncias.Também o segmento de limpeza, executa somente depois de longos períodos de inatividade, não em um cronograma definido.Você pode definir o intervalo para qualquer coisa que você queira ou desligar o thread de limpeza completamente e gerenciar a limpeza do mesmo (apenas chamar close()).

Estes desenhos são todos parte do meu objetivo final de fazer ExifTool a integração de uma aplicação Java sem costura, de alto desempenho e fácil.

Você pode verificar para fora do principal página do projeto para mais informações sobre o projeto, o uso, a origem, os links de download, etc.ou você pode saltar para a direita para GitHub e procure o código, se você preferir.

Outras dicas

Eu não sei o exiftool, mas eu tenho usado anteriormente MediaUtil para ler e escrever etiquetas exif em java (eu usei-o para automatizada de imagem jpeg de rotação)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top