ATS-900 Update IPTCMetadataExtractor_metadata_extract.properties (#373)

This commit is contained in:
David Edwards 2021-04-26 13:00:53 +01:00 committed by GitHub
parent 5ce59d9c04
commit 2d38805d90
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 206 additions and 317 deletions

View File

@ -27,10 +27,13 @@
package org.alfresco.transformer.metadataExtractors; package org.alfresco.transformer.metadataExtractors;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable;
import java.util.Map;
import org.alfresco.transform.exceptions.TransformException; import org.alfresco.transform.exceptions.TransformException;
import org.alfresco.transformer.tika.parsers.ExifToolParser; import org.alfresco.transformer.tika.parsers.ExifToolParser;
import org.apache.tika.exception.TikaException; import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.Parser; import org.apache.tika.parser.Parser;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -51,8 +54,20 @@ public class IPTCMetadataExtractor extends AbstractTikaMetadataExtractor
return new ExifToolParser(); return new ExifToolParser();
} catch (IOException | TikaException e) { } catch (IOException | TikaException e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
throw new TransformException(500, "Error creating IPTC parser"); throw new TransformException(500, "Error creating IPTC parser: " + e.getMessage());
} }
} }
/**
* Because some of the mimetypes that IPTCMetadataExtractor now parse, were previously handled
* by TikaAutoMetadataExtractor we call the TikaAutoMetadataExtractor.extractSpecific method to
* ensure that the returned properties contains the expected entries.
*/
@Override
protected Map<String, Serializable> extractSpecific(Metadata metadata, Map<String, Serializable> properties,
Map<String, String> headers) {
properties = new TikaAutoMetadataExtractor().extractSpecific(metadata, properties, headers);
return properties;
}
} }

View File

@ -26,6 +26,10 @@
*/ */
package org.alfresco.transformer.tika.parsers; package org.alfresco.transformer.tika.parsers;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_JPEG;
import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_TIFF;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@ -35,25 +39,28 @@ import java.io.InputStreamReader;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.Reader; import java.io.Reader;
import java.net.URL; import java.net.URL;
import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.exception.TikaException; import org.apache.tika.exception.TikaException;
import org.apache.tika.io.IOUtils; import org.apache.tika.io.IOUtils;
import org.apache.tika.io.NullOutputStream; import org.apache.tika.io.NullOutputStream;
import org.apache.tika.io.TemporaryResources; import org.apache.tika.io.TemporaryResources;
import org.apache.tika.io.TikaInputStream; import org.apache.tika.io.TikaInputStream;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.mime.MediaType;
import org.apache.tika.parser.ParseContext; import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.parser.external.ExternalParser; import org.apache.tika.parser.external.ExternalParser;
import org.apache.tika.parser.external.ExternalParsersFactory; import org.apache.tika.parser.external.ExternalParsersFactory;
import org.apache.tika.parser.image.ImageParser;
import org.apache.tika.parser.image.TiffParser;
import org.apache.tika.parser.jpeg.JpegParser;
import org.apache.tika.sax.XHTMLContentHandler; import org.apache.tika.sax.XHTMLContentHandler;
import org.xml.sax.ContentHandler; import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import static java.nio.charset.StandardCharsets.UTF_8;
public class ExifToolParser extends ExternalParser { public class ExifToolParser extends ExternalParser {
private static final String EXIFTOOL_PARSER_CONFIG = "parsers/external/config/exiftool-parser.xml"; private static final String EXIFTOOL_PARSER_CONFIG = "parsers/external/config/exiftool-parser.xml";
@ -84,14 +91,33 @@ public class ExifToolParser extends ExternalParser {
throws IOException, SAXException, TikaException { throws IOException, SAXException, TikaException {
XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata); XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
MediaType mediaType = MediaType.parse(metadata.get(Metadata.CONTENT_TYPE));
TemporaryResources tmp = new TemporaryResources(); TemporaryResources tmp = new TemporaryResources();
try { try {
parse(TikaInputStream.get(stream, tmp), xhtml, metadata, tmp); TikaInputStream tis = TikaInputStream.get(stream, tmp);
parse(tis, xhtml, metadata, tmp);
switch (mediaType.getType()+"/"+mediaType.getSubtype()) {
case MIMETYPE_IMAGE_JPEG:
parseAdditional(new JpegParser(), tis, handler, metadata, context, mediaType);
break;
case MIMETYPE_IMAGE_TIFF:
parseAdditional(new TiffParser(), tis, handler, metadata, context, mediaType);
break;
default:
parseAdditional(new ImageParser(), tis, handler, metadata, context, mediaType);
}
} finally { } finally {
tmp.dispose(); tmp.dispose();
} }
} }
private void parseAdditional(Parser parser, TikaInputStream tis, ContentHandler handler, Metadata metadata, ParseContext context,
MediaType mediaType) throws IOException, SAXException, TikaException {
if (parser.getSupportedTypes(context).contains(mediaType)) {
parser.parse(tis, handler, metadata, context);
}
}
private void parse(TikaInputStream stream, XHTMLContentHandler xhtml, Metadata metadata, TemporaryResources tmp) private void parse(TikaInputStream stream, XHTMLContentHandler xhtml, Metadata metadata, TemporaryResources tmp)
throws IOException, SAXException, TikaException { throws IOException, SAXException, TikaException {
boolean inputToStdIn = true; boolean inputToStdIn = true;

View File

@ -1,308 +1,141 @@
# #
# IPTCMetadataExtracter - default mapping # IPTCMetadataExtracter - default mapping
# #
# author: David Edwards # author: David Edwards
# TODO Complete mappings (currently copied from other files) # Namespaces
namespace.prefix.cm=http://www.alfresco.org/model/content/1.0
# Namespaces
namespace.prefix.cm=http://www.alfresco.org/model/content/1.0 # IPTC
namespace.prefix.audio=http://www.alfresco.org/model/audio/1.0 namespace.prefix.iptcxmp=http://www.alfresco.org/model/content/metadata/IPTCXMP/1.0
namespace.prefix.video=http://www.alfresco.org/model/video/1.0 namespace.prefix.dc=http://purl.org/dc/elements/1.1/
namespace.prefix.custom=MyCustomNameSpace namespace.prefix.Iptc4xmpCore=http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/
namespace.prefix.Iptc4xmpExt=http://iptc.org/std/Iptc4xmpExt/2008-02-29/
# Dump of most namespaces returned by the exifTool for testing namespace.prefix.photoshop=http://ns.adobe.com/photoshop/1.0/
# TODO ATS-900 namespace.prefix.plus=http://ns.useplus.org/ldf/xmp/1.0/
namespace.prefix.File=File namespace.prefix.xmpRights=http://ns.adobe.com/xap/1.0/rights/
namespace.prefix.IFD0=IFD0 namespace.prefix.stDim=http://ns.adobe.com/xap/1.0/sType/Dimensions
namespace.prefix.ExifIFD=ExifIFD
namespace.prefix.IFD1=IFD1 # Exif
namespace.prefix.Photoshop=Photoshop namespace.prefix.exif=http://www.alfresco.org/model/exif/1.0
namespace.prefix.IPTC=IPTC
namespace.prefix.ICC-header=ICC-header # Mappings from TikaAutoExtractor
namespace.prefix.ICC_Profile=ICC_Profile author=cm:author
namespace.prefix.ICC-view=ICC-view title=cm:title
namespace.prefix.ICC-meas=ICC-meas description=cm:description
namespace.prefix.XMP-x=XMP-x created=cm:created
namespace.prefix.XMP-photoshop=XMP-photoshop
namespace.prefix.XMP-xmp=XMP-xmp geo\:lat=cm:latitude
namespace.prefix.XMP-iptcCore=XMP-iptcCore geo\:long=cm:longitude
namespace.prefix.XMP-dc=XMP-dc
namespace.prefix.XMP-xmpRights=XMP-xmpRights tiff\:ImageWidth=exif:pixelXDimension
namespace.prefix.XMP-xmpMM=XMP-xmpMM tiff\:ImageLength=exif:pixelYDimension
namespace.prefix.XMP-illustrator=XMP-illustrator tiff\:Make=exif:manufacturer
namespace.prefix.XMP-mediapro=XMP-mediapro tiff\:Model=exif:model
namespace.prefix.XMP-aux=XMP-aux tiff\:Software=exif:software
namespace.prefix.XMP-iptcExt=XMP-iptcExt tiff\:Orientation=exif:orientation
namespace.prefix.XMP-plus=XMP-plus tiff\:XResolution=exif:xResolution
namespace.prefix.XMP-custom=XMP-custom tiff\:YResolution=exif:yResolution
namespace.prefix.Adobe=Adobe tiff\:ResolutionUnit=exif:resolutionUnit
namespace.prefix.Composite=Composite exif\:Flash=exif:flash
exif\:ExposureTime=exif:exposureTime
# Core mappings exif\:FNumber=exif:fNumber
# There is overlap with the TikaAutoMetadatorExtractor. These core mappings should still be included for backwards compatability. exif\:FocalLength=exif:focalLength
# TODO ATS-900 exif\:IsoSpeedRatings=exif:isoSpeedRatings
XMP-dc\:Creator=cm:author exif\:DateTimeOriginal=exif:dateTimeOriginal
XMP-dc\:Title=cm:title
XMP-dc\:Description=cm:description # IPTC Mappings
created=cm:created XMP-dc\:Description=dc:description
XMP-dc\:Subject=dc:subject
# Dump of most namespaces returned by the exifTool for testing XMP-dc\:Creator=dc:creator
# TODO ATS-900 XMP-dc\:Rights=dc:rights
ExifTool\:ExifToolVersion=custom:ExifToolVersion XMP-dc\:Title=dc:title
File\:FileType=File:FileType XMP-iptcCore\:CountryCode=Iptc4xmpCore:CiAdrCtry
File\:FileTypeExtension=File:FileTypeExtension XMP-iptcCore\:CountryCode=Iptc4xmpCore:CountryCode
File\:MIMEType=File:MIMEType XMP-iptcCore\:CreatorAddress=Iptc4xmpCore:CiAdrExtadr
File\:ExifByteOrder=File:ExifByteOrder XMP-iptcCore\:CreatorCity=Iptc4xmpCore:CiAdrCity
File\:CurrentIPTCDigest=File:CurrentIPTCDigest XMP-iptcCore\:CreatorPostalCode=Iptc4xmpCore:CiAdrPcode
File\:ImageWidth=File:ImageWidth XMP-iptcCore\:CreatorRegion=Iptc4xmpCore:CiAdrRegion
File\:ImageHeight=File:ImageHeight XMP-iptcCore\:CreatorWorkEmail=Iptc4xmpCore:CiEmailWork
File\:EncodingProcess=File:EncodingProcess XMP-iptcCore\:CreatorWorkTelephone=Iptc4xmpCore:CiTelWork
File\:BitsPerSample=File:BitsPerSample XMP-iptcCore\:CreatorWorkURL=Iptc4xmpCore:CiUrlWork
File\:ColorComponents=File:ColorComponents XMP-iptcCore\:IntellectualGenre=Iptc4xmpCore:IntellectualGenre
File\:YCbCrSubSampling=File:YCbCrSubSampling XMP-iptcCore\:Location=Iptc4xmpCore:Location
IFD0\:PhotometricInterpretation=IFD0:PhotometricInterpretation XMP-iptcCore\:Scene=Iptc4xmpCore:Scene
IFD0\:ImageDescription=IFD0:ImageDescription XMP-iptcCore\:SubjectCode=Iptc4xmpCore:SubjectCode
IFD0\:Orientation=IFD0:Orientation XMP-photoshop\:AuthorsPosition=photoshop:AuthorsPosition
IFD0\:SamplesPerPixel=IFD0:SamplesPerPixel XMP-photoshop\:CaptionWriter=photoshop:CaptionWriter
IFD0\:XResolution=IFD0:XResolution XMP-photoshop\:Category=photoshop:Category
IFD0\:YResolution=IFD0:YResolution XMP-photoshop\:City=photoshop:City
IFD0\:ResolutionUnit=IFD0:ResolutionUnit XMP-photoshop\:Country=photoshop:Country
IFD0\:Software=IFD0:Software XMP-photoshop\:Credit=photoshop:Credit
IFD0\:ModifyDate=IFD0:ModifyDate XMP-photoshop\:DateCreated=photoshop:DateCreated
IFD0\:Artist=IFD0:Artist XMP-photoshop\:Headline=photoshop:Headline
IFD0\:Copyright=IFD0:Copyright XMP-photoshop\:Instructions=photoshop:Instructions
ExifIFD\:Make=ExifIFD:Make XMP-photoshop\:Source=photoshop:Source
ExifIFD\:Model=ExifIFD:Model XMP-photoshop\:State=photoshop:State
ExifIFD\:ExposureTime=ExifIFD:ExposureTime XMP-photoshop\:SupplementalCategories=photoshop:SupplementalCategories
ExifIFD\:FNumber=ExifIFD:FNumber XMP-photoshop\:TransmissionReference=photoshop:TransmissionReference
ExifIFD\:ExposureProgram=ExifIFD:ExposureProgram XMP-photoshop\:Urgency=photoshop:Urgency 
ExifIFD\:ISO=ExifIFD:ISO XMP-xmpRights\:UsageTerms=xmpRights:UsageTerms
ExifIFD\:ExifVersion=ExifIFD:ExifVersion
ExifIFD\:DateTimeOriginal=ExifIFD:DateTimeOriginal XMP-iptcExt\:AdditionalModelInformation=Iptc4xmpExt:AddlModelInfo
ExifIFD\:CreateDate=ExifIFD:CreateDate XMP-iptcExt\:ArtworkCopyrightNotice=Iptc4xmpExt:AOCopyrightNotice
ExifIFD\:ComponentsConfiguration=ExifIFD:ComponentsConfiguration XMP-iptcExt\:ArtworkCreator=Iptc4xmpExt:AOCreator
ExifIFD\:ShutterSpeedValue=ExifIFD:ShutterSpeedValue XMP-iptcExt\:ArtworkDateCreated=Iptc4xmpExt:AODateCreated
ExifIFD\:ApertureValue=ExifIFD:ApertureValue XMP-iptcExt\:ArtworkSource=Iptc4xmpExt:AOSource
ExifIFD\:ExposureCompensation=ExifIFD:ExposureCompensation XMP-iptcExt\:ArtworkSourceInventoryNo=Iptc4xmpExt:AOSourceInvNo
ExifIFD\:MaxApertureValue=ExifIFD:MaxApertureValue XMP-iptcExt\:ArtworkTitle=Iptc4xmpExt:AOTitle
ExifIFD\:MeteringMode=ExifIFD:MeteringMode XMP-iptcExt\:ControlledVocabularyTerm=Iptc4xmpExt:CVterm
ExifIFD\:Flash=ExifIFD:Flash XMP-iptcExt\:DigitalImageGUID=Iptc4xmpExt:DigImageGUID
ExifIFD\:FocalLength=ExifIFD:FocalLength XMP-iptcExt\:DigitalSourceFileType=Iptc4xmpExt:DigitalSourcefileType
ExifIFD\:SubSecTime=ExifIFD:SubSecTime XMP-iptcExt\:DigitalSourceType=Iptc4xmpExt:DigitalSourceType
ExifIFD\:SubSecTimeOriginal=ExifIFD:SubSecTimeOriginal XMP-iptcExt\:Event=Iptc4xmpExt:Event
ExifIFD\:SubSecTimeDigitized=ExifIFD:SubSecTimeDigitized XMP-iptcExt\:IPTCLastEdited=Iptc4xmpExt:IptcLastEdited
ExifIFD\:FlashpixVersion=ExifIFD:FlashpixVersion XMP-iptcExt\:LocationCreatedCity=Iptc4xmpExt:LocationCreatedCity
ExifIFD\:ColorSpace=ExifIFD:ColorSpace XMP-iptcExt\:LocationCreatedCountryCode=Iptc4xmpExt:LocationCreatedCountryCode
ExifIFD\:ExifImageWidth=ExifIFD:ExifImageWidth XMP-iptcExt\:LocationCreatedCountryName=Iptc4xmpExt:LocationCreatedCountryName
ExifIFD\:ExifImageHeight=ExifIFD:ExifImageHeight XMP-iptcExt\:LocationCreatedProvinceState=Iptc4xmpExt:LocationCreatedProvinceState
ExifIFD\:FocalPlaneXResolution=ExifIFD:FocalPlaneXResolution XMP-iptcExt\:LocationCreatedSublocation=Iptc4xmpExt:LocationCreatedSublocation
ExifIFD\:FocalPlaneYResolution=ExifIFD:FocalPlaneYResolution XMP-iptcExt\:LocationCreatedWorldRegion=Iptc4xmpExt:LocationCreatedWorldRegion
ExifIFD\:FocalPlaneResolutionUnit=ExifIFD:FocalPlaneResolutionUnit XMP-iptcExt\:LocationShownCity=Iptc4xmpExt:LocationShownCity
ExifIFD\:CustomRendered=ExifIFD:CustomRendered XMP-iptcExt\:LocationShownCountryCode=Iptc4xmpExt:LocationShownCountryCode
ExifIFD\:ExposureMode=ExifIFD:ExposureMode XMP-iptcExt\:LocationShownCountryName=Iptc4xmpExt:LocationShownCountryName
ExifIFD\:WhiteBalance=ExifIFD:WhiteBalance XMP-iptcExt\:LocationShownProvinceState=Iptc4xmpExt:LocationShownProvinceState
ExifIFD\:SceneCaptureType=ExifIFD:SceneCaptureType XMP-iptcExt\:LocationShownSublocation=Iptc4xmpExt:LocationShownSublocation
ExifIFD\:SerialNumber=ExifIFD:SerialNumber XMP-iptcExt\:LocationShownWorldRegion=Iptc4xmpExt:LocationShownWorldRegion
ExifIFD\:LensInfo=ExifIFD:LensInfo XMP-iptcExt\:MaxAvailHeight=Iptc4xmpExt:MaxAvailHeight
ExifIFD\:LensModel=ExifIFD:LensModel XMP-iptcExt\:MaxAvailWidth=Iptc4xmpExt:MaxAvailWidth
ExifIFD\:LensSerialNumber=ExifIFD:LensSerialNumber XMP-iptcExt\:ModelAge=Iptc4xmpExt:ModelAge
IFD1\:Compression=IFD1:Compression XMP-iptcExt\:OrganisationInImageCode=Iptc4xmpExt:OrganisationInImageCode
IFD1\:ThumbnailOffset=IFD1:ThumbnailOffset XMP-iptcExt\:OrganisationInImageName=Iptc4xmpExt:OrganisationInImageName
IFD1\:ThumbnailLength=IFD1:ThumbnailLength XMP-iptcExt\:PersonInImage=Iptc4xmpExt:PersonInImage
IFD1\:ThumbnailImage=IFD1:ThumbnailImage XMP-iptcExt\:RegistryItemID=Iptc4xmpExt:RegItemId
IPTC\:CodedCharacterSet=IPTC:CodedCharacterSet XMP-iptcExt\:RegistryOrganisationID=Iptc4xmpExt:RegOrgId
IPTC\:ApplicationRecordVersion=IPTC:ApplicationRecordVersion XMP-plus\:CopyrightOwnerID=plus:CopyrightOwnerID
IPTC\:Caption-Abstract=IPTC:Caption-Abstract XMP-plus\:CopyrightOwnerName=plus:CopyrightOwnerName
IPTC\:Writer-Editor=IPTC:Writer-Editor XMP-plus\:ImageCreatorID=plus:ImageCreatorID
IPTC\:SpecialInstructions=IPTC:SpecialInstructions XMP-plus\:ImageCreatorName=plus:ImageCreatorName
IPTC\:By-line=IPTC:By-line XMP-plus\:ImageSupplierID=plus:ImageSupplierID
IPTC\:By-lineTitle=IPTC:By-lineTitle XMP-plus\:ImageSupplierImageID=plus:ImageSupplierImageID
IPTC\:ObjectName=IPTC:ObjectName XMP-plus\:ImageSupplierName=plus:ImageSupplierName
IPTC\:TimeCreated=IPTC:TimeCreated XMP-plus\:LicensorCity=plus:LicensorCity
IPTC\:Sub-location=IPTC:Sub-location XMP-plus\:LicensorCountry=plus:LicensorCountry
IPTC\:Province-State=IPTC:Province-State XMP-plus\:LicensorEmail=plus:LicensorEmail
IPTC\:Country-PrimaryLocationName=IPTC:Country-PrimaryLocationName XMP-plus\:LicensorExtendedAddress=plus:LicensorExtendedAddress
IPTC\:Country-PrimaryLocationCode=IPTC:Country-PrimaryLocationCode XMP-plus\:LicensorID=plus:LicensorID
IPTC\:OriginalTransmissionReference=IPTC:OriginalTransmissionReference XMP-plus\:LicensorName=plus:LicensorName
IPTC\:Keywords=IPTC:Keywords XMP-plus\:LicensorPostalCode=plus:LicensorPostalCode
IPTC\:CopyrightNotice=IPTC:CopyrightNotice XMP-plus\:LicensorRegion=plus:LicensorRegion
IPTC\:FixtureIdentifier=IPTC:FixtureIdentifier XMP-plus\:LicensorStreetAddress=plus:LicensorStreetAddress
IPTC\:EditStatus=IPTC:EditStatus XMP-plus\:LicensorTelephone1=plus:LicensorTelephone1
IPTC\:Contact=IPTC:Contact XMP-plus\:LicensorTelephone2=plus:LicensorTelephone2
Photoshop\:IPTCDigest=Photoshop:IPTCDigest XMP-plus\:LicensorURL=plus:LicensorURL
Photoshop\:DisplayedUnitsX=Photoshop:DisplayedUnitsX XMP-plus\:MinorModelAgeDisclosure=plus:MinorModelAgeDisclosure
Photoshop\:DisplayedUnitsY=Photoshop:DisplayedUnitsY XMP-plus\:ModelReleaseID=plus:ModelReleaseID
Photoshop\:PrintStyle=Photoshop:PrintStyle XMP-plus\:ModelReleaseStatus=plus:ModelReleaseStatus
Photoshop\:PrintPosition=Photoshop:PrintPosition XMP-plus\:PLUSVersion=plus:Version
Photoshop\:PrintScale=Photoshop:PrintScale XMP-plus\:PropertyReleaseID=plus:PropertyReleaseID
Photoshop\:GlobalAngle=Photoshop:GlobalAngle XMP-plus\:PropertyReleaseStatus=plus:PropertyReleaseStatus
Photoshop\:GlobalAltitude=Photoshop:GlobalAltitude
Photoshop\:CopyrightFlag=Photoshop:CopyrightFlag stDim\:unit=stDim:unit
Photoshop\:URL=Photoshop:URL
Photoshop\:URL_List=Photoshop:URL_List
Photoshop\:SlicesGroupName=Photoshop:SlicesGroupName
Photoshop\:NumSlices=Photoshop:NumSlices
Photoshop\:PixelAspectRatio=Photoshop:PixelAspectRatio
Photoshop\:PhotoshopThumbnail=Photoshop:PhotoshopThumbnail
Photoshop\:HasRealMergedData=Photoshop:HasRealMergedData
Photoshop\:WriterName=Photoshop:WriterName
Photoshop\:ReaderName=Photoshop:ReaderName
Photoshop\:PhotoshopQuality=Photoshop:PhotoshopQuality
Photoshop\:PhotoshopFormat=Photoshop:PhotoshopFormat
Photoshop\:ProgressiveScans=Photoshop:ProgressiveScans
XMP-x\:XMPToolkit=XMP-x:XMPToolkit
XMP-photoshop\:LegacyIPTCDigest=XMP-photoshop:LegacyIPTCDigest
XMP-photoshop\:AuthorsPosition=XMP-photoshop:AuthorsPosition
XMP-photoshop\:Headline=XMP-photoshop:Headline
XMP-photoshop\:CaptionWriter=XMP-photoshop:CaptionWriter
XMP-photoshop\:DateCreated=XMP-photoshop:DateCreated
XMP-photoshop\:City=XMP-photoshop:City
XMP-photoshop\:State=XMP-photoshop:State
XMP-photoshop\:Country=XMP-photoshop:Country
XMP-photoshop\:TransmissionReference=XMP-photoshop:TransmissionReference
XMP-photoshop\:Instructions=XMP-photoshop:Instructions
XMP-photoshop\:Credit=XMP-photoshop:Credit
XMP-photoshop\:Source=XMP-photoshop:Source
XMP-photoshop\:Category=XMP-photoshop:Category
XMP-photoshop\:ColorMode=XMP-photoshop:ColorMode
XMP-photoshop\:ICCProfileName=XMP-photoshop:ICCProfileName
XMP-photoshop\:SupplementalCategories=XMP-photoshop:SupplementalCategories
XMP-xmp\:CreatorTool=XMP-xmp:CreatorTool
XMP-xmp\:MetadataDate=XMP-xmp:MetadataDate
XMP-iptcCore\:IntellectualGenre=XMP-iptcCore:IntellectualGenre
XMP-iptcCore\:Location=XMP-iptcCore:Location
XMP-iptcCore\:CountryCode=XMP-iptcCore:CountryCode
XMP-iptcCore\:CreatorAddress=XMP-iptcCore:CreatorAddress
XMP-iptcCore\:CreatorCity=XMP-iptcCore:CreatorCity
XMP-iptcCore\:CreatorRegion=XMP-iptcCore:CreatorRegion
XMP-iptcCore\:CreatorPostalCode=XMP-iptcCore:CreatorPostalCode
XMP-iptcCore\:CreatorCountry=XMP-iptcCore:CreatorCountry
XMP-iptcCore\:CreatorWorkTelephone=XMP-iptcCore:CreatorWorkTelephone
XMP-iptcCore\:CreatorWorkEmail=XMP-iptcCore:CreatorWorkEmail
XMP-iptcCore\:CreatorWorkURL=XMP-iptcCore:CreatorWorkURL
XMP-iptcCore\:Scene=XMP-iptcCore:Scene
XMP-iptcCore\:SubjectCode=XMP-iptcCore:SubjectCode
XMP-dc\:Format=XMP-dc:Format
XMP-dc\:Title=XMP-dc:Title
XMP-dc\:Subject=XMP-dc:Subject
XMP-dc\:Creator=XMP-dc:Creator
XMP-dc\:Rights=XMP-dc:Rights
XMP-dc\:Description=XMP-dc:Description
XMP-xmpRights\:WebStatement=XMP-xmpRights:WebStatement
XMP-xmpRights\:Marked=XMP-xmpRights:Marked
XMP-xmpRights\:UsageTerms=XMP-xmpRights:UsageTerms
XMP-xmpMM\:DocumentID=XMP-xmpMM:DocumentID
XMP-xmpMM\:InstanceID=XMP-xmpMM:InstanceID
XMP-xmpMM\:OriginalDocumentID=XMP-xmpMM:OriginalDocumentID
XMP-xmpMM\:HistoryAction=XMP-xmpMM:HistoryAction
XMP-xmpMM\:HistoryInstanceID=XMP-xmpMM:HistoryInstanceID
XMP-xmpMM\:HistoryWhen=XMP-xmpMM:HistoryWhen
XMP-xmpMM\:HistorySoftwareAgent=XMP-xmpMM:HistorySoftwareAgent
XMP-xmpMM\:HistoryChanged=XMP-xmpMM:HistoryChanged
XMP-illustrator\:StartupProfile=XMP-illustrator:StartupProfile
XMP-mediapro\:Status=XMP-mediapro:Status
XMP-mediapro\:People=XMP-mediapro:People
XMP-aux\:Lens=XMP-aux:Lens
XMP-iptcExt\:AdditionalModelInformation=XMP-iptcExt:AdditionalModelInformation
XMP-iptcExt\:MaxAvailWidth=XMP-iptcExt:MaxAvailWidth
XMP-iptcExt\:MaxAvailHeight=XMP-iptcExt:MaxAvailHeight
XMP-iptcExt\:DigitalSourceType=XMP-iptcExt:DigitalSourceType
XMP-iptcExt\:LocationCreatedSublocation=XMP-iptcExt:LocationCreatedSublocation
XMP-iptcExt\:LocationCreatedCity=XMP-iptcExt:LocationCreatedCity
XMP-iptcExt\:LocationCreatedProvinceState=XMP-iptcExt:LocationCreatedProvinceState
XMP-iptcExt\:LocationCreatedCountryName=XMP-iptcExt:LocationCreatedCountryName
XMP-iptcExt\:LocationCreatedCountryCode=XMP-iptcExt:LocationCreatedCountryCode
XMP-iptcExt\:LocationCreatedWorldRegion=XMP-iptcExt:LocationCreatedWorldRegion
XMP-iptcExt\:Event=XMP-iptcExt:Event
XMP-iptcExt\:ModelAge=XMP-iptcExt:ModelAge
XMP-iptcExt\:ArtworkDateCreated=XMP-iptcExt:ArtworkDateCreated
XMP-iptcExt\:ArtworkSource=XMP-iptcExt:ArtworkSource
XMP-iptcExt\:ArtworkSourceInventoryNo=XMP-iptcExt:ArtworkSourceInventoryNo
XMP-iptcExt\:ArtworkCopyrightNotice=XMP-iptcExt:ArtworkCopyrightNotice
XMP-iptcExt\:ArtworkTitle=XMP-iptcExt:ArtworkTitle
XMP-iptcExt\:ArtworkCreator=XMP-iptcExt:ArtworkCreator
XMP-iptcExt\:RegistryOrganisationID=XMP-iptcExt:RegistryOrganisationID
XMP-iptcExt\:RegistryItemID=XMP-iptcExt:RegistryItemID
XMP-iptcExt\:OrganisationInImageName=XMP-iptcExt:OrganisationInImageName
XMP-iptcExt\:OrganisationInImageCode=XMP-iptcExt:OrganisationInImageCode
XMP-iptcExt\:PersonInImage=XMP-iptcExt:PersonInImage
XMP-iptcExt\:LocationShownSublocation=XMP-iptcExt:LocationShownSublocation
XMP-iptcExt\:LocationShownCity=XMP-iptcExt:LocationShownCity
XMP-iptcExt\:LocationShownProvinceState=XMP-iptcExt:LocationShownProvinceState
XMP-iptcExt\:LocationShownCountryName=XMP-iptcExt:LocationShownCountryName
XMP-iptcExt\:LocationShownCountryCode=XMP-iptcExt:LocationShownCountryCode
XMP-iptcExt\:LocationShownWorldRegion=XMP-iptcExt:LocationShownWorldRegion
XMP-plus\:PropertyReleaseStatus=XMP-plus:PropertyReleaseStatus
XMP-plus\:ImageSupplierImageID=XMP-plus:ImageSupplierImageID
XMP-plus\:MinorModelAgeDisclosure=XMP-plus:MinorModelAgeDisclosure
XMP-plus\:ModelReleaseStatus=XMP-plus:ModelReleaseStatus
XMP-plus\:PLUSVersion=XMP-plus:PLUSVersion
XMP-plus\:ImageSupplierName=XMP-plus:ImageSupplierName
XMP-plus\:ImageSupplierID=XMP-plus:ImageSupplierID
XMP-plus\:ImageCreatorName=XMP-plus:ImageCreatorName
XMP-plus\:ImageCreatorID=XMP-plus:ImageCreatorID
XMP-plus\:ModelReleaseID=XMP-plus:ModelReleaseID
XMP-plus\:PropertyReleaseID=XMP-plus:PropertyReleaseID
XMP-plus\:CopyrightOwnerName=XMP-plus:CopyrightOwnerName
XMP-plus\:CopyrightOwnerID=XMP-plus:CopyrightOwnerID
XMP-plus\:LicensorName=XMP-plus:LicensorName
XMP-plus\:LicensorID=XMP-plus:LicensorID
XMP-plus\:LicensorTelephone1=XMP-plus:LicensorTelephone1
XMP-plus\:LicensorTelephone2=XMP-plus:LicensorTelephone2
XMP-plus\:LicensorEmail=XMP-plus:LicensorEmail
XMP-plus\:LicensorURL=XMP-plus:LicensorURL
XMP-custom\:Text=XMP-custom:Text
XMP-custom\:TextML=XMP-custom:TextML
ICC-header\:ProfileCMMType=ICC-header:ProfileCMMType
ICC-header\:ProfileVersion=ICC-header:ProfileVersion
ICC-header\:ProfileClass=ICC-header:ProfileClass
ICC-header\:ColorSpaceData=ICC-header:ColorSpaceData
ICC-header\:ProfileConnectionSpace=ICC-header:ProfileConnectionSpace
ICC-header\:ProfileDateTime=ICC-header:ProfileDateTime
ICC-header\:ProfileFileSignature=ICC-header:ProfileFileSignature
ICC-header\:PrimaryPlatform=ICC-header:PrimaryPlatform
ICC-header\:CMMFlags=ICC-header:CMMFlags
ICC-header\:DeviceManufacturer=ICC-header:DeviceManufacturer
ICC-header\:DeviceModel=ICC-header:DeviceModel
ICC-header\:DeviceAttributes=ICC-header:DeviceAttributes
ICC-header\:RenderingIntent=ICC-header:RenderingIntent
ICC-header\:ConnectionSpaceIlluminant=ICC-header:ConnectionSpaceIlluminant
ICC-header\:ProfileCreator=ICC-header:ProfileCreator
ICC-header\:ProfileID=ICC-header:ProfileID
ICC_Profile\:ProfileCopyright=ICC_Profile:ProfileCopyright
ICC_Profile\:ProfileDescription=ICC_Profile:ProfileDescription
ICC_Profile\:MediaWhitePoint=ICC_Profile:MediaWhitePoint
ICC_Profile\:MediaBlackPoint=ICC_Profile:MediaBlackPoint
ICC_Profile\:RedMatrixColumn=ICC_Profile:RedMatrixColumn
ICC_Profile\:GreenMatrixColumn=ICC_Profile:GreenMatrixColumn
ICC_Profile\:BlueMatrixColumn=ICC_Profile:BlueMatrixColumn
ICC_Profile\:DeviceMfgDesc=ICC_Profile:DeviceMfgDesc
ICC_Profile\:DeviceModelDesc=ICC_Profile:DeviceModelDesc
ICC_Profile\:ViewingCondDesc=ICC_Profile:ViewingCondDesc
ICC_Profile\:Luminance=ICC_Profile:Luminance
ICC_Profile\:Technology=ICC_Profile:Technology
ICC_Profile\:RedTRC=ICC_Profile:RedTRC
ICC_Profile\:GreenTRC=ICC_Profile:GreenTRC
ICC_Profile\:BlueTRC=ICC_Profile:BlueTRC
ICC-view\:ViewingCondIlluminant=ICC-view:ViewingCondIlluminant
ICC-view\:ViewingCondSurround=ICC-view:ViewingCondSurround
ICC-view\:ViewingCondIlluminantType=ICC-view:ViewingCondIlluminantType
ICC-meas\:MeasurementObserver=ICC-meas:MeasurementObserver
ICC-meas\:MeasurementBacking=ICC-meas:MeasurementBacking
ICC-meas\:MeasurementGeometry=ICC-meas:MeasurementGeometry
ICC-meas\:MeasurementFlare=ICC-meas:MeasurementFlare
ICC-meas\:MeasurementIlluminant=ICC-meas:MeasurementIlluminant
Adobe\:DCTEncodeVersion=Adobe:DCTEncodeVersion
Adobe\:APP14Flags0=Adobe:APP14Flags0
Adobe\:APP14Flags1=Adobe:APP14Flags1
Adobe\:ColorTransform=Adobe:ColorTransform
Composite\:Aperture=Composite:Aperture
Composite\:ImageSize=Composite:ImageSize
Composite\:Megapixels=Composite:Megapixels
Composite\:ShutterSpeed=Composite:ShutterSpeed
Composite\:SubSecModifyDate=Composite:SubSecModifyDate
Composite\:DateTimeCreated=Composite:DateTimeCreated
Composite\:FocalLength35efl=Composite:FocalLength35efl
Composite\:LightValue=Composite:LightValue
Composite\:LensID=Composite:LensID

View File

@ -529,9 +529,24 @@
{ {
"transformerName": "IPTCMetadataExtractor", "transformerName": "IPTCMetadataExtractor",
"supportedSourceAndTargetList": [ "supportedSourceAndTargetList": [
{"sourceMediaType": "image/jpeg", "priority": 60, "targetMediaType": "alfresco-metadata-extract"}, {"sourceMediaType": "image/gif", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/png", "priority": 60, "targetMediaType": "alfresco-metadata-extract"} {"sourceMediaType": "image/jp2", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
], {"sourceMediaType": "image/jpeg", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/png", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/tiff", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/webp", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-adobe", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-canon", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-fuji", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-hasselblad", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-kodak", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-minolta", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-nikon", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-olympus", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-panasonic", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-pentax", "priority": 60, "targetMediaType": "alfresco-metadata-extract"},
{"sourceMediaType": "image/x-raw-sony", "priority": 60, "targetMediaType": "alfresco-metadata-extract"}
],
"transformOptions": [ "transformOptions": [
"metadataOptions" "metadataOptions"
] ]