Saya mencari pustaka manipulasi exif (Exchangeable image file format) yang bagus untuk python. Saya lebih suka fleksibilitas (misalnya, kemampuan untuk mengambil tag milik penyedia) daripada kecepatan pemrosesan. Apa yang kamu sarankan?
108
MakerNote
. Dalam tag EXIF ini, produsen kamera menambahkan tag mereka sendiri yang menyimpan informasi berharga. Jadi Anda hanya akan mendapatkan tag dasar dengan sebagian besar perpustakaan dari jawaban di bawah ini.Jawaban:
Anda mungkin ingin memeriksa exif-py :
atau Python Imaging Library (PIL) :
Ada juga pyexif yang diberi nama tepat: http://pyexif.sourceforge.net/
Namun, sepertinya pyexif belum diperbarui cukup lama. Mereka merekomendasikan jika mereka tidak melakukan trik untuk memeriksa EXIF-py, jadi Anda mungkin harus mencoba yang pertama, karena halaman sourceforge mereka tampaknya memiliki beberapa aktivitas di sana akhir-akhir ini, meskipun tidak banyak. Terakhir, dengan menggunakan PIL Anda dapat melakukan ini:
Penafian :
Saya sebenarnya tidak tahu mana yang terbaik, inilah yang bisa saya kumpulkan dengan Google. :)
sumber
pip
! github.com/python-pillow/PillowSaya sendiri baru-baru ini menggunakan pyexiv2 , dan sepertinya sangat sesuai dengan kebutuhan saya. Mungkin itu cocok untuk Anda juga.
sumber
Solusi Berbasis Exiv2
Exiv2 (exiv2: http://exiv2.org/ ) adalah pustaka C ++ sumber terbuka dan matang yang mendukung pembacaan dan penulisan metadata ke banyak jenis gambar (JPEG, PNG, TIFF dan banyak format mentah), memahami standar (Xmp, IPTC dan Exif) dan metadata non-standar ("Makernotes"), dan berjalan pada banyak platform (Windows, Linux, dan, dengan beberapa pekerjaan, Mac).
Binding Python ke exiv2 adalah:
Salah satu keuntungan pyexiv2 adalah tersedia build windows untuk python 2.7. Permintaan windows build untuk gexiv2 ada di sini: https://bugzilla.gnome.org/show_bug.cgi?id=712441
exiv2 dan semua binding adalah open source (GPL).
sumber
pyexiv2
telah bercabang: py3exiv2.tuxfamily.org .Artikel ini menjelaskan modul Python untuk menulis metadata EXIF (dan tidak hanya membacanya) menggunakan Python murni. Rupanya, tidak ada PIL, pyexif, atau EXIF-py yang mendukung penulisan EXIF. pyexiv2 tampaknya paling mutakhir dan khusus untuk platform.
sumber
Gunakan PIL :)
sumber
Halaman di http://redmine.yorba.org/projects/gexiv2/wiki (menjadi https://wiki.gnome.org/Projects/gexiv2 ) berbunyi sekarang :
Jadi, Python2 dan Python3 sekarang didukung oleh GExiv2.
Kabar baik.
sumber
Anda juga dapat melihat pustaka jpeg.py Gheorghe Milas di http://www.emilas.com/jpeg/ , yang merupakan "Pustaka python untuk mengurai, membaca, dan menulis JPEG EXIF, IPTC, dan metadata COM."
Kekurangannya adalah dia tampaknya menghosting domainnya pada IP dinamis melalui DynDNS, jadi domainnya tidak selalu tersedia.
sumber
entah bagaimana saya mendapatkan atributError untuk _getexif dengan kode Paolo di atas .. Saya menggunakan Python 2.6.6 dan PIL 1.1.7. Apakah _getexif sudah usang sekarang ??
Ini modifikasi kecil yang berhasil untuk saya.
sumber
Saya mulai menulis perpustakaan kecil saya sendiri yang didasarkan pada kode di PIL. periksa di sini .
sumber
Saya telah menggunakan pembungkus saya sendiri di sekitar http://www.sno.phy.queensu.ca/~phil/exiftool/ - alasannya adalah sangat lengkap, devnya sangat aktif. Dan tidak dapat mendukung hampir semua format gambar adalah penghenti mutlak untuk proyek yang dibutuhkannya
Kelemahannya tentu saja ini bukan python, jadi Anda perlu menggunakan panggilan subproses, seperti yang saya lakukan.
sumber
Ada beberapa contoh penggunaan PIL dan EXIF.py di ASPN
sumber
Dalam Python 2.6 tempat modul berbeda. Gunakan ini:
sumber