Exifinterface

Leia e grave tags EXIF do arquivo de imagem.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
13 de novembro de 2024 1.3.7 - - 1.4.0-alpha01

Declarar dependências

Para adicionar uma dependência à Exifinterface, é preciso adicionar o repositório Maven do Google ao seu projeto. Acesse Repositório Maven do Google para saber mais.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

dependencies {
    implementation "androidx.exifinterface:exifinterface:1.3.7"
}

Kotlin

dependencies {
    implementation("androidx.exifinterface:exifinterface:1.3.7")
}

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.4

Versão 1.4.0-alpha01

13 de novembro de 2024

Lançamento de androidx.exifinterface:exifinterface:1.4.0-alpha01. A versão 1.4.0-alpha01 contém estas confirmações.

Novos recursos

  • Adição de suporte para leitura de dados XMP de imagens HEIF.
  • Adição de suporte à leitura de Exif e XMP em imagens AVIF.

Mudanças na API

  • Indica que o parâmetro location para setGpsInfo é @Nullable e que a transmissão de null resultará em uma operação nula. (If924c, b/236484611).

Correções de bugs

  • A análise foi continuada após encontrar um deslocamento IFD inválido (b/264729367).
  • Processar imagens WebP que contêm incorretamente um marcador APP1 JPEG antes dos dados EXIF (b/281638358).
  • saveAttributes() garante que as mudanças de XMP em JPEGs com um segmento XMP separado sejam armazenadas no mesmo segmento XMP separado, em vez de serem gravadas na tag TIFF/Exif 700, que não tem suporte da especificação XMP e que muitas ferramentas não encontram.
  • Evitar a duplicação de dados XMP de um segmento separado no diretório de visualização de TIFF ao salvar (b/309843390).
  • Melhoria na precisão das conversões de dupla para racional. (b/312680558).
  • Aceite o formato racional (x/y) para setAttribute em tags racionais "legado" que são convertidas automaticamente em decimal quando retornadas de getAttribute (b/312680558).
  • Os dados XMP adicionados a uma imagem JPEG que ainda não contém XMP são gravados em um segmento separado, conforme especificado pela especificação XMP. ExifInterface é documentado para preferir o XMP na tag Exif 700 em imagens JPEG (violando a especificação). Portanto, esse comportamento é preservado ao ler/gravar imagens com dados XMP existentes.
  • Correção da saída corrompida ao gravar imagens WebP com altura ou largura maior que 8.191 pixels (b/342697059).
  • Essa biblioteca agora usa anotações de nulidade JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar os seguintes argumentos do compilador para aplicar o uso correto: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I5cd0f, b/326456246).
  • O contorno manual de acesso a novas APIs da plataforma foi removido, já que isso acontece automaticamente pelo modelagem de API ao usar o R8 com o AGP 7.3 ou mais recente (por exemplo, o R8 versão 3.3) e para todos os builds ao usar o AGP 8.1 ou mais recente (por exemplo, o D8 versão 8.1). Os clientes que não estão usando o AGP precisam fazer upgrade para a versão 8.1 ou mais recente do D8. Veja mais detalhes neste artigo. (If6b4c, b/345472586).

Versão 1.3.7

Versão 1.3.7

13 de dezembro de 2023

Lançamento de androidx.exifinterface:exifinterface:1.3.7. A versão 1.3.7 contém estas confirmações.

Correções de bugs

  • Gerar uma exceção de ExifInterface.saveAttributes() ao tentar gravar um segmento APP1 JPEG muito grande. Antes, gravávamos um segmento APP1 inválido com um comprimento truncado incorreto:(b/263747161). Continuar a análise após encontrar um deslocamento de IFD inválido. Antes, a análise era interrompida imediatamente, o que poderia resultar em valores incorretos sendo retornados: (b/264729367).

Versão 1.3.6

Versão 1.3.6

8 de fevereiro de 2023

Lançamento de androidx.exifinterface:exifinterface:1.3.6. A versão 1.3.6 contém estas confirmações.

Correções de bugs

  • Correção da leitura de bits Alfa de blocos WebP VP8L (b/255405635).

Versão 1.3.5

Versão 1.3.5

24 de outubro de 2022

Lançamento de androidx.exifinterface:exifinterface:1.3.5. A versão 1.3.5 contém estas confirmações.

Correções de bugs

  • Correção de dois casos de saveAttributes() que produziam arquivos WebP inválidos.

Versão 1.3.4

Versão 1.3.4

5 de outubro de 2022

Lançamento de androidx.exifinterface:exifinterface:1.3.4. A versão 1.3.4 contém estas confirmações.

Correções de bugs

  • Foi removido o suporte ao salvamento de atributos em arquivos DNG. O suporte adicionado na versão 1.3.3 estava incompleto e produzia arquivos corrompidos.

Versão 1.3.3

Versão 1.3.3

4 de agosto de 2021

Lançamento de androidx.exifinterface:exifinterface:1.3.3. A versão 1.3.3 contém estas confirmações.

Correções de bugs

  • Correção da análise de tags relacionadas a subseções (aosp/1508143).
  • A RuntimeException é evitada ao chamar setDataSource (c8e66e9).
  • O aumento dos loops infinitos de skipBytes é impedido (fdbe88b).
  • Captura da RuntimeException pelo MediaMetadataRetriever (389b21a).
  • Foi adicionada compatibilidade para salvar atributos em arquivos DNG (3017dbc).
  • Substituição de tags sem miniaturas por outras com miniaturas (e1b916d).

Versão 1.3.2

Versão 1.3.2

2 de dezembro de 2020

Lançamento de androidx.exifinterface:exifinterface:1.3.2. A versão 1.3.2 contém estas confirmações.

Correções de bugs

  • Permite SRATIONAL para GPS_LATITUDE e GPS_LONGITUDE.
  • Foi adicionado suporte à leitura/gravação de um formato secundário (2020-01-01 00:00:00) da tag DateTime.
  • Impedimento da remoção temporária do arquivo de origem ao chamar saveAttribute().

Versão 1.3.1

Versão 1.3.1

14 de outubro de 2020

androidx.exifinterface:exifinterface:1.3.1 é lançado. A versão 1.3.1 contém estas confirmações.

Correções de bugs

  • Correção da implementação saveAttributes para manter os dados da imagem no MediaProvider.

Versão 1.3.0

Versão 1.3.0

16 de setembro de 2020

androidx.exifinterface:exifinterface:1.3.0 é lançado. A versão 1.3.0 contém estas confirmações.

Principais mudanças desde a versão 1.2.0

  • O suporte à gravação do EXIF do WebP foi estendido para incluir arquivos que contenham apenas blocos VP8 ou VP8L.
  • Foi removido o armazenamento em buffer desnecessário, que causava exceções OutOfMemory em arquivos de imagem grandes.
  • Remoção de INVALID_DATE_TIME. Em vez disso, use NULL para retornar valores de data e hora inválidos.
  • Agora, getGpsDateTime retorna Long.MIN_VALUE em vez de -1 para um valor inválido.

Versão 1.3.0-rc01

2 de setembro de 2020

androidx.exifinterface:exifinterface:1.3.0-rc01 é lançado sem mudanças desde 1.3.0-beta01. A versão 1.3.0-rc01 contém estas confirmações.

Versão 1.3.0-beta01

19 de agosto de 2020

androidx.exifinterface:exifinterface:1.3.0-beta01 é lançado. A versão 1.3.0-beta01 contém estas confirmações.

Novos recursos

  • O suporte à gravação do EXIF do WebP foi estendido para incluir arquivos que contenham apenas blocos VP8 ou VP8L.

Mudanças na API

  • Remoção de INVALID_DATE_TIME. Em vez disso, use NULL para retornar um valor de datetime inválido.

Correções de bugs

  • Agora, getGpsDateTime retorna Long.MIN_VALUE em vez de -1 porque -1 é um valor válido.
  • Getters relacionados a DateTime consideram o valor de ajuste (+/-) da string de data.
  • Foi removido o armazenamento em buffer desnecessário, que causava exceções OutOfMemory em arquivos de imagem grandes.
  • Definição da localidade padrão como "EUA".
  • Substituição de ".tmp" na criação de arquivos temporários para a adição de um prefixo.

Versão 1.3.0-alpha01

19 de fevereiro de 2020

androidx.exifinterface:exifinterface:1.3.0-alpha01 é lançado. A versão 1.3.0-alpha01 contém estas confirmações.

Mudanças na API

  • Foi adicionado um novo método: ExifInterface.getGpsDateTime()

Versão 1.2.0

Versão 1.2.0

1º de abril de 2020

androidx.exifinterface:exifinterface:1.2.0 é lançado. A versão 1.2.0 contém estas confirmações.

Principais mudanças desde a versão 1.1.0

  • Adição de compatibilidade com acréscimo de EXIF a arquivos PNG
  • Adição de compatibilidade com arquivos WebP e fluxo exclusivo de dados EXIF
  • Adição de uma API para verificar se o tipo MIME especificado é compatível
  • Adição de mais tags para ajuste de horário: TAG_OFFSET_TIME, TAF_OFFSET_TIME_DIGITIZED e TAG_OFFSET_TIME_ORIGINAL

Versão 1.2.0-rc01

19 de fevereiro de 2020

androidx.exifinterface:exifinterface:1.2.0-rc01 é lançado. A versão 1.2.0-rc01 contém estas confirmações.

Correções de bugs

  • Correção de um problema em que arquivos JPEG eram salvos incorretamente caso o arquivo JPEG tivesse dados XMP

Versão 1.2.0-beta01

18 de dezembro de 2019

androidx.exifinterface:exifinterface:1.2.0-beta01 é lançado. A versão 1.2.0-beta01 contém estas confirmações.

Novos recursos

  • Adição de compatibilidade com acréscimo de EXIF a arquivos PNG
  • Adição de compatibilidade com leitura e gravação de EXIF de arquivos WebP
  • Adição de compatibilidade com um fluxo exclusivo de dados EXIF

Mudanças na API

  • Adição de uma API para verificar se o tipo MIME especificado é compatível
  • Exposição de tags OffsetTime* de leitura e gravação

Correções de bugs

  • Correção de um problema em que intervalos incorretos estavam sendo retornados para getAttributeRange()

Versão 1.1.0

Versão 1.1.0

20 de novembro de 2019

androidx.exifinterface:exifinterface:1.1.0 é lançado. A versão 1.1.0 contém estas confirmações.

Mudanças importantes desde a versão 1.0.0

  • Suporte ao formato HEIF e mais tags XMP.
  • Foi adicionado suporte para a construção de um objeto ExifInterface usando File ou FileDescriptor como base.
  • Adição de mais métodos para receber o atributo: hasAttribute, getAttributeBytes e getAttributesRange

Versão 1.1.0-rc01

9 de outubro de 2019

androidx.exifinterface:exifinterface:1.1.0-rc01 é lançado. A versão 1.0.0-rc01 contém essas confirmações (link em inglês).

Correções de bugs

  • Foi adicionado um nome de formato ausente (IFD) para evitar ArrayIndexOutOfBoundsException em loadAttributes.
  • Impedimento da exclusão do arquivo de origem quando ocorreu uma exceção durante a chamada de saveAttributes
  • Foi corrigido um problema de exceção quando há uma chamada para saveAttributes() após a modificação de um arquivo.

Versão 1.1.0-beta01

2 de julho de 2019

Lançamento de androidx.exifinterface:exifinterface:1.1.0-beta01. As confirmações incluídas nessa versão podem ser encontradas neste link.

Novos recursos

  • Lança NullPointerException quando null está definido para argumentos @NonNull
  • Suporte a tags XMP

Mudanças na API

  • Adição de mais métodos para receber informações de atributos.
  • hasAttribute, getAttributeBytes e getAttributesRange

Correções de bugs

  • Prevenção de vazamento de memória do descritor de arquivos.

Versão 1.1.0-alpha01

13 de março de 2019

Lançamento de androidx.exifinterface:exifinterface:1.1.0-alpha01. A lista completa de confirmações incluídas nessa versão pode ser encontrada neste link.

Novos recursos

  • Compatibilidade com o formato HEIF.

Mudanças na API

  • Adição de mais construtores de ExifInterface.
  • Correção de erro de digitação: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME.

Correções de bugs

  • Foi corrigida a verificação do possível estouro da imagem em miniatura (aosp/748608).