this exampleのようにPILを使用できますか? はデータを読み取るためにイメージを読むPythonのXMPデータ
は私だけ必要、と私はそれが(私はpyexivをインストールすることはできません)一番簡単な最も簡単な方法を探しています。
編集:Exempiとブーストを必要とする、私はこれを行うための唯一の方法は、いくつかのライブラリー(python-xmp-toolkit、pyexiv2、...)であることを信じたくない。別のオプションが必要です!
this exampleのようにPILを使用できますか? はデータを読み取るためにイメージを読むPythonのXMPデータ
は私だけ必要、と私はそれが(私はpyexivをインストールすることはできません)一番簡単な最も簡単な方法を探しています。
編集:Exempiとブーストを必要とする、私はこれを行うための唯一の方法は、いくつかのライブラリー(python-xmp-toolkit、pyexiv2、...)であることを信じたくない。別のオプションが必要です!
PILソース(1.1.7)を検索すると、TiffファイルのXMP情報を認識できることがわかりますが、アプリケーションレベルでPILを使用してXMP情報を扱うための文書化されたAPIまたは文書化されていないAPIの証拠は見つかりません。 CHANGESファイルから
は、ソースに含ま:
+ Support for preserving ICC profiles (by Florian Böch via Tim Hatch).
Florian writes:
It's a beta, so still needs some testing, but should allow you to:
- retain embedded ICC profiles when saving from/to JPEG, PNG, TIFF.
Existing code doesn't need to be changed.
- access embedded profiles in JPEG, PNG, PSD, TIFF.
It also includes patches for TIFF to retain IPTC, Photoshop and XMP
metadata when saving as TIFF again, read/write TIFF resolution
information correctly, and to correct inverted CMYK JPEG files.
だから、XMPのサポートは、TIFFに制限され、TIFFイメージがロードされたときにのみ、XMP情報を保持することを可能にする、おそらく変更、および保存。アプリケーションはXMPデータにアクセスしたり、XMPデータを作成することはできません。
まあ、私は似たような探していた、そして私はPHP equivalent質問に出くわしたと私は、Pythonにanwerを翻訳:あなたは、その後xmp_strを変換し、XML APIとそれを解析することができます
f = 'example.jpg'
fd = open(f)
d= fd.read()
xmp_start = d.find('<x:xmpmeta')
xmp_end = d.find('</x:xmpmeta')
xmp_str = d[xmp_start:xmp_end+12]
print(xmp_str)
。
with open(imgFileName, "rb") as fin:
img = fin.read()
imgAsString=str(img)
xmp_start = imgAsString.find('<x:xmpmeta')
xmp_end = imgAsString.find('</x:xmpmeta')
if xmp_start != xmp_end:
xmpString = imgAsString[xmp_start:xmp_end+12]
xmpAsXML = BeautifulSoup(xmpString)
print(xmpAsXML.prettify())
それとも
XMPメタデータはapplist
で見つけることができますPythonのXMPツールキットを使用することができます。
from PIL import Image
with Image.open(filename) as im:
for segment, content in im.applist:
marker, body = content.split('\x00', 1)
if segment == 'APP1' and marker == 'http://ns.adobe.com/xap/1.0/':
# parse the XML string with any method you like
print body
いいです、どこの文書ですか?私だけが見つかりましたhttps://github.com/python-pillow/Pillow/blob/da8f2737a8a325ed5bb1d24a777a0b4d3ddaa7d8/PIL/JpegImagePlugin.py#L57-L128 –
@TobiasKienzlerはいこれは文書化されていません – CodeColorist
私は... PILのようなパッケージを使用してデータにアクセスすると、切り捨てられたキーワードに問題があるのが好きです。もう1つの利点は、jpgからそれを読み取ると、再利用可能なパッケージを作成するときに依存性がなくなることです。 – sthzg