최근에 icafe Java 이미지 라이브러리의 메타 데이터 조작 부분을 코딩하고 EXIF, IPTC, PHOTOSHOP, ICC_Profile, 썸네일 등의 메타 데이터 유형을 삽입하고 추출 할 수있게 만들었습니다. 일부 기능은 다른 것보다 낫지 만 모두 비교적 잘 작동합니다. 우리는 "이미지"에서 "iptc.tif"이미지를 전달하는 경우
import java.io.IOException;
import java.util.List;
import java.util.Map;
import com.icafe4j.image.meta.Metadata;
import com.icafe4j.image.meta.MetadataType;
import com.icafe4j.image.meta.iptc.IPTC;
import com.icafe4j.image.meta.iptc.IPTCDataSet;
public class TestIPTC {
public static void main(String[] args) throws IOException {
Map<MetadataType, Metadata> metadataMap = Metadata.readMetadata(args[0]);
// Show IPTC specific information
IPTC iptc = (IPTC)metadataMap.get(MetadataType.IPTC);
if(iptc != null) {
// Retrieve a list of Keywords Dataset
List<IPTCDataSet> keywords = iptc.getDataSet("Keywords");
//List<IPTCDataset> keywords = iptc.getDataSet(IPTCEnvelopeTag.KEY_WORDS.getName());
for(IPTCDataSet keyword : keywords)
//System.out.println(keyword.getName());
//System.out.println(keyword.getDataAsString());
keyword.print();
}
}
}
가 인수로 프로젝트의 디렉토리, 우리는 다음과 같은 정보를 얻을 것이다 : 아래 모든 메타 데이터 읽기를위한 공통 인터페이스가있다 :
Record number 2: Application Record
Dataset name: Keywords
Dataset tag: 25[0x0019]
Dataset size: 6
Dataset value: Bayern
Record number 2: Application Record
Dataset name: Keywords
Dataset tag: 25[0x0019]
Dataset size: 11
Dataset value: Deckelstein
Record number 2: Application Record
Dataset name: Keywords
Dataset tag: 25[0x0019]
Dataset size: 7
Dataset value: Germany
Record number 2: Application Record
Dataset name: Keywords
Dataset tag: 25[0x0019]
Dataset size: 10
Dataset value: Nittendorf
위 코드는 JPEG와 TIFF 모두에서 작동합니다. 자동으로 이미지 유형을 감지하고 해당 코드를 위임하여 작업을 수행합니다.
참고 : IPTC 데이터가 포함 된 TIFF 파일에 둘 이상의 위치가있을 수 있습니다. 하나는 RichTiffIPTC 태그이고, 다른 하나는 Photoshop 태그 안에 있습니다. 현재 icafe는 하나의 IPTC 데이터 만 유지합니다. IPTC 데이터가있는 Photoshop 태그와 RichTiffIPTC 태그가 모두 있으면 RichTiffIPTC 데이터가 유지됩니다. 그렇지 않으면, 존재하는 태그는 그 태그로부터 IPTC 데이터를 유지합니다. 두 위치에서 데이터를 유지하는 데 아무런 문제가 없습니다. 메타 데이터 유형 키를 고유 메타 데이터에 매핑하는 맵을 사용하는 현재 구현입니다. 따라서 하나의 고유 한 메타 데이터 인스턴스 만 유지합니다.
업데이트 :icafe 이제 RichTiffIPTC와 Photoshop IRB의 IPTC 데이터를 결합하고 중복을 제거 할 수 있습니다.