Estou procurando uma boa biblioteca de manipulação de exif (formato de arquivo de imagem trocável) para python. Eu prefiro flexibilidade (por exemplo, capacidade de recuperar tags proprietárias dos provedores) do que velocidade de processamento. O que você sugeriria?
108
MakerNote
. Nesta tag EXIF, os fabricantes de câmeras adicionam suas próprias tags que contêm informações valiosas. Portanto, você obteria apenas as tags básicas com a maioria das bibliotecas das respostas abaixo.Respostas:
Você pode querer verificar exif-py :
ou a Python Imaging Library (PIL) :
Também existe o pyexif apropriadamente chamado: http://pyexif.sourceforge.net/
No entanto, parece que o pyexif não é atualizado há algum tempo. Eles recomendam, se o deles não funcionar, verifique o EXIF-py, então você provavelmente deve tentar esse primeiro, pois a página do sourceforge parece ter alguns atividade ultimamente, embora não muito. Finalmente, usando PIL, você pode fazer isso:
Isenção de responsabilidade :
na verdade, não tenho ideia do que é melhor, isso é apenas o que eu consegui juntar com o Google. :)
fonte
pip
! github.com/python-pillow/PillowEu tenho usado o pyexiv2 recentemente e parece se adequar perfeitamente às minhas necessidades. Talvez seja adequado ao seu também.
fonte
Soluções baseadas em Exiv2
Exiv2 (exiv2: http://exiv2.org/ ) é uma biblioteca C ++ madura de código aberto que oferece suporte à leitura e gravação de metadados em muitos tipos de imagem (JPEG, PNG, TIFF e muitos formatos brutos) e entende padrão (Xmp, IPTC e Exif) e metadados não padrão ("Makernotes"), e é executado em várias plataformas (Windows, Linux e, com algum trabalho, Mac).
As ligações Python para exiv2 são:
Uma vantagem do pyexiv2 é que existe uma versão do Windows disponível para o python 2.7. Uma solicitação do Windows Build para gexiv2 está aqui: https://bugzilla.gnome.org/show_bug.cgi?id=712441
exiv2 e as ligações são todos de código aberto (GPL).
fonte
pyexiv2
foi bifurcado: py3exiv2.tuxfamily.org .Este artigo descreve um módulo Python para escrever metadados EXIF (e não apenas lê-los) usando Python puro. Aparentemente, nenhum de PIL, pyexif, nem EXIF-py suporta a escrita EXIF. pyexiv2 parece ser de ponta e específico da plataforma.
fonte
Use PIL :)
fonte
A página em http://redmine.yorba.org/projects/gexiv2/wiki (tornou-se https://wiki.gnome.org/Projects/gexiv2 ) agora diz :
Portanto, Python2 e Python3 agora são suportados por GExiv2.
Boas notícias.
fonte
Você também pode consultar a biblioteca jpeg.py de Gheorghe Milas em http://www.emilas.com/jpeg/ , que é "Uma biblioteca python para analisar, ler e gravar metadados JPEG EXIF, IPTC e COM."
Uma desvantagem é que ele parece estar hospedando seu domínio em um IP dinâmico via DynDNS, portanto, nem sempre está disponível.
fonte
de alguma forma eu obtenho um attributeError para _getexif com o código de Paolo acima .. Estou usando Python 2.6.6 e PIL 1.1.7. _Getexif está obsoleto agora ??
Aqui está uma pequena modificação que funcionou para mim.
fonte
Comecei a escrever minha própria pequena biblioteca baseada no código em PIL. verifique aqui .
fonte
Tenho usado meus próprios invólucros em http://www.sno.phy.queensu.ca/~phil/exiftool/ - a razão é que ele é muito completo, o dev é muito ativo. E não ser capaz de suportar quase todos os formatos de imagem é um obstáculo absoluto para o projeto que é necessário para
A desvantagem, claro, é que não é python, então você precisaria usar chamadas de subprocesso, como eu.
fonte
Existem alguns exemplos de uso de PIL e EXIF.py em ASPN
fonte
No Python 2.6, o local do módulo é diferente. Usa isto:
fonte