제 문제는 많은 양의 RDF 데이터를 JPEG 이미지에 XMP 헤더에 삽입하려고합니다. RDF는 내 응용 프로그램에 고유하며 사용자 정의 네임 스페이스 등이 있습니다. 그러나 RDF를 삽입하는 프로세스에는 영향을 미치지 않습니다. 적은 양의 RDF 데이터로이 작업을 수행 할 수 있지만, 더 큰 값을 삽입하려고하면 XMP 패킷 크기 제한에 도달합니다.여러 패킷을 사용하여 대량의 XMP 데이터를 jpg에 삽입 하시겠습니까?
저는 Java와 Apache Sanselan lib를 사용하고 있습니다. 그러나 다른 라이브러리를 사용할 수는 있습니다.
아래 코드는 테스트 응용 프로그램에서 사용하는 코드입니다. 그러나 필자는 필요한 모든 데이터를 삽입하기 위해 여러 개의 XMP 패킷으로 분할하는 방법을 모르겠습니다. 올바른 방향으로
어떤 도움이나 포인터는 크게 감상 할 수있다 :)
감사 어도비 XMP 사양 부분 3 인용
private static File writeXmpToFile(File file, String xmpXmlAsString)
throws FileNotFoundException, ImageReadException, IOException,
ImageWriteException {
String XmpXmlAsString = xmpXmlAsString;
File fileWithXmpXml = new File(file.getParent(), file.getName()+ ".added-xmp" + ".jpg");
OutputStream os = null;
try {
os = new BufferedOutputStream(new FileOutputStream(fileWithXmpXml));
new JpegXmpRewriter().updateXmpXml(new ByteSourceFile(file), os, XmpXmlAsString);
} finally {
if (os != null) {
os.close();
}
os = null;
}
return fileWithXmpXml;
}
외부에서 메타 데이터 저장을 고려해 보셨습니까? – Michael
예 메타 데이터를 쉽게 전달하기 위해 내부적으로 JPEG에 저장하고 싶지만 외부에서 메타 데이터를 저장하는 것을 고려했습니다. 내부적으로 저장할 수없는 경우 외부 저장은 내 마지막 수단입니다. – Andy
나는 C++로만 작성된 Adobe의 XMPFiles lib를 사용해야 함을 발견했습니다. 유망한 JNI 동적 라이브러리를 찾았습니다. http://www.chilkatsoft.com/java-xmp.asp 현재이 기능을 사용하여 내 요구 사항을 충족하는지 확인하려고합니다. 내가 작동하게되면/내가 업데이트 할 것입니다. :) – Andy