2009-02-01 13 views
3

XMP를 통해 이미지 묶음에 파이썬으로 태그하는 것이 가장 좋은 방법은 무엇입니까? 나는 Perl의 Image :: ExifTool을 사용했으며 그 신뢰성에 매우 익숙하다. 나는 수만 장의 이미지에 결코 벽돌을 만들지 않는다는 것을 의미합니다.XMP 이미지 태그 지정 및 Python

유럽 우주국 (European Space Agency)과 같은 중후 한 타격을받으며 this이 발견되었지만, 불안정한 것으로 분명히 표시되었습니다.

이제 C++에 익숙하다고 가정하면 파이썬에서 Adobe XMP toolkit을 직접 사용하는 것이 얼마나 쉬운가요? 전에 이것을 한 번도 해 본 적이 없기 때문에, 내가 무엇을 등록 할 지 확신하지 못합니다.

업데이트 : 나는 앞에서 언급 한 툴킷을 포함하여 몇 가지 라이브러리를 시도했지만 아직 미숙하고 눈부신 문제가 있습니다. 필자는 전투 테스트를 거친 Image :: EXIF를 사용하여 메타 데이터를 읽고 쓰는 XML 요청을 허용하는 Perl 기반 서버를 실제로 작성했습니다. 코드의 양은 실제로 매우 가벼우 며, Python 라이브러리를 작동 시키려고 노력함으로써 고문을 이겨내고 있습니다. 서버 솔루션은 언어에 구애받지 않으므로 두 가지 방법이 있습니다.

답변

4

웹 사이트에 따르면 python-xmp-toolkit은 ctypes를 통해 Adobe XMP 툴킷을 기반으로하는 Exempi를 사용합니다. 내가 말하고자하는 것은 당신이 C++ 코드의 더 나은 랩핑을 스스로 만들지는 않을 것이라는 것이다. 불안정한 경우 (버그가있는 경우) 처음부터 직접 패치를 작성하는 것보다는 패치를 만드는 것이 더 저렴할 수 있습니다.

그러나 특별한 상황에서는 필요한 기능의 정도에 따라 다릅니다. 단일 함수 만 있으면 C++ 코드를 작은 C 확장 라이브러리 나 Cython으로 래핑하는 것이 가능합니다. &의 모든 기능을 사용할 필요가있을 때 래퍼를 수동으로 만들거나 SWIG를 사용하여 기본적으로 다른 사람들이 수행 한 작업을 반복해야합니다.

+0

오른쪽, 나는 확실히 유럽 우주기구와 경쟁하고 싶지 않아요 :)하지만 직접 어도비 툴킷을 사용하는 바로 가기가 있는지 궁금입니다. 제 목적은 매우 제한되어 있습니다. 간단한 태그 만 쓰면됩니다. –

+0

이 경우에는 작은 확장 모듈 만 작성하면됩니다. –

+0

@ Torsten 또는 python-xmp-toolkit을 사용해보십시오. "불안정한"것은 모호하며 아마도 그가 필요로하는 것을 할 것입니다. 알아내는 유일한 방법은 시도하는 것입니다. –

0

당신은 ImageMagic convert을 사용할 수 있습니다. IIRC에는 파이썬 모듈도 있습니다.

4

저는 python-xmp-toolkit으로 몇 시간 동안 고생하고 결국 포기하고 그냥 ExifTool으로 전화를 겁니다.

ExifTool도 랩핑하는 a Ruby library이 있습니다 (그러나 내가 만든 것보다 훨씬 낫습니다). XMP를 다루는 간단한 방법으로 파이썬에 이식 할 가치가 있다고 생각합니다.

0

파이썬 3.x를 들어 읽고 모든 표준 메타 데이터를 작성, 자신의 XMP 네임 스페이스를 만들거나 이미지 파일에 포함 된 썸네일을 추출 할 수 있습니다 py3exiv2으로 편집 XMP 메타 데이터

을 지원 py3exiv2있다. 내가 py3exiv2 대해 마음

한 가지가 내 시스템에 설치하는 경우 그러나 문제가 발생했다

을 잘 유지 보인다 (C++) exiv2 library (우분투 16.04) 기반으로 구축한다는 것입니다.

import pyexiv2 
metadata = pyexiv2.ImageMetadata("file_name.jpg") 
metadata.read() 
key = "Xmp.xmp.CustomTagKey" 
value = "CustomTagValue" 
metadata[key] = pyexiv2.XmpTag(key, value) 
metadata.write() 
: 그것은 내가 처음 libexiv2-DEV ( sudo apt-get install libexiv2-dev)의 최신 버전을 설치했다 작동하려면, 오직이 후 py3exiv2를 설치 ( sudo -H pip3 install py3exiv2)

다음

내가 새 태그를 작성하는 py3exiv2을 사용한 방법

은 (문서에 또한 tutorial있다)