Image metadata: importing or merging

Many image files contain not just the image itself, but also so-called metadata: information about the image, its file name, the camera settings when the image was made or descriptions of the photographed subject and the name of the photographer and such. It depends on the way in which an image was created and edited if, and which, metadata is present. There are different types of metadata, for instance image metadata such as EXIF and IPTC (contained in photos made with digital cameras), and Windows metadata that is available by default for all types of files and contains the file properties. IPTC metadata has no overlap with technical metadata (like EXIF) which is added to a photo automatically by the camera. The Windows metadata is very limited, but may be useful if images do not contain any EXIF or IPTC metadata. With some software, like Adlib, this metadata can be extracted from an image.

There are two ways of associating image metadata with media records in Adlib:

Adlib (not Collections) can read EXIF and (from release 6.5.0) IPTC photo metadata dynamically from an image file linked to a (media) record when the relevant record is opened or processed some other way. If your application has been set up properly the retrieved metadata will be shown on screen in the relevant EXIF and/or IPTC fields, but not stored in that record. If you were to change some of the properties of the image file outside of Adlib, those changes would then automatically be reflected in the relevant metadata fields next time you open the record. A disadvantage of this dynamically retrieved metadata is that users can't search on it.
Multimedia documentation records in model applications 4.2 and higher have ready-made EXIF data and IPTC data tabs.
Using Axiell Designer, you could also import image metadata into a database (like Multimedia documentation) through an import job so that every image in a folder automatically gets its own record. In this case, any metadata you import will actually be stored in the record, so it won't ever be updated automatically. A so-called image directory import is especially handy if you'd like to automatically create media records for all images in a folder and you can import some other metadata along that users need to be able to search on and that probably won't ever change in the image file itself.
However, you can't use any of the fields on the EXIF data and IPTC data tabs in Multimedia documentation records to import to: you'll have to use other existing fields or create new ones.

An image directory import

As mentioned above, using Axiell Designer you can import image metadata into a database (like Multimedia documentation) through an import job so that every image gets its own record. Enter at least the following two settings for any of the three indicated types of import (of images) in the import job:

For the Input file type property, choose Image directory.
For the Source data file property, you specify the directory in which the images you want to import metadata from are stored. You can also use a wildcard (*) to include all possible values. For example:

C:\MyImages\*.jpg

(all jpg files in this folder)

C:\MyImages\*.*

(all files in this folder)

C:\MyImages

(all files in this folder)

..\images\obj-1\*.jpg

(all jpg files in this folder)

Metadata tags (see paragraphs below) can now be used as source tags in the tag mapping in the import job, depending on whether the image files contain EXIF and/or IPTC metadata. As your target fields in the Adlib database, use any custom or standard fields you find appropriate but DO NOT use fields which names start with EXIF. or IPTC. because those fields are intended to dynamically retrieve the relevant metadata only when a media record is opened or processed so that those fields always display the actual metadata as it is currently present in the image file itself. So when you decide to import image metadata, you should probably only import metadata that can't be retrieved dynamically and you should find or create separate fields for that imported metadata.

EXIF metadata (Exchangeable Image File Format)

Most digital cameras save photos through the EXIF standard; for uncompressed images this means they are saved in the TIFF format, and that compressed images are saved in the JPEG format. Every individual photo file also contains technical metadata about the photo, such as its size, resolution, whether a flash was used, shutter speed, etc.; there may be over a hundred properties for any one photo. This metadata can be extracted through an Adlib import job (or when linking an image to a Multimedia documentation record manually) and loaded into the database if it suits the purpose.
See the EXIF standard definition on the internet for a detailed overview of all EXIF properties (although not all of these can be used in Adlib): http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf. See the table at the bottom of this Help page for a list of all EXIF properties usable in Adlib.

If the pdf file with the EXIF standard definition cannot be displayed, you may need to download and install software that supports Japanese characters in Adobe Acrobat Reader. You can find this file on:
http://www.adobe.com/products/acrobat/acrrasianfontpack.html

Select the font pack for Japanese and the Windows operating system, before starting the download.

You can only use hexadecimal EXIF tags as source tags for an import job you define. (Designer knows that these are hexadecimal tags, so you must not precede such a tag by 0x.) For instance, the hexadecimal EXIF tag 11A that contains the width of the image resolution is entered as the source tag 011A in the tag mapping in a Designer import job. Note that hexadecimal EXIF tags must always be entered as a four-character tag, and that letters in the tag must be written in upper-case.

IPTC metadata (International Press Telecommunications Council)

IPTC is a relatively old metadata standard developed by the International Press Telecommunications Council, applied by Adobe Systems Inc. since the nineties of the last century to describe photos in metadata. So-called IPTC headers may occur in Photoshop, JPEG and TIFF image files. In 2001, Adobe introduced a new metadata framework named XMP (eXtensible Metadata Platform) in her products. The “IPTC Core” XMP schema, developed by the IPTC4XMP initiative since 2004, makes it possible to convert old IPTC headers to the XMP framework and vice versa.
Adlib cannot read XMP metadata, but it does use XMP property and field names to read IPTC metadata – in the specification, the relevant identifier type for contact information is called “field name” and for the other metadata “property name”. Via the XMP property/field names you create an implicit mapping to Adlib fields in Adlib. A specification of all XMP property/field names can be found in the “IPTC Core 1.0 specification document” which can be downloaded from http://www.iptc.org/.
This metadata can be extracted when linking an image to a Multimedia documentation record manually (not by means of an Adlib import job though) and loaded into the database if it suits the purpose.

Metadata in all Windows files

Every Windows file - irrespective of its type- contains metadata in the shape of file properties. The source fields that you can use in the tag pair mapping for importing are:

FILE: file name;
PATH: full path (including file name);
SIZE: file size;
CREATIONDATE: the ISO date on which the file was first saved;
CREATIONTIME: the time at which the file was first saved;
WRITEDATE: the ISO date on which the file was last modified;
WRITETIME: the time at which the file was last modified;
ACCESSDATE: the ISO date on which the file was last opened;
ACCESSTIME: the time at which the file was last opened.

Setting up your databases and application

When linking an image to a Multimedia documentation record in Adlib, Adlib can read EXIF and IPTC metadata automatically. This will only happen for the metadata tags which have been “mapped” to Adlib tags in the PHOTO or MEDIA database structure in the proper manner. In this case, mapping means that Adlib tags must have been defined with field names according to a specific syntax (in which EXIF or IPTC property/field names are included). To show this metadata in your Adlib application, the relevant Adlib tags must have been added to screens as well. In Adlib model application 4.2 and higher, a selection of EXIF and IPTC metadata fields has already been implemented (on which you can expand of course), while in older applications you'll have to add the desired fields yourself. The implementation of IPTC metadata in Adlib is comparable to that of EXIF, just the syntax of the Adlib field names is different:

EXIF - You could add fields for EXIF metadata to the PHOTO or MEDIA database in Adlib: it makes sense if the description of images in the Multimedia documentation data source in your application would also contain EXIF metadata. From application version 4.2 a number of EXIF fields and an EXIF data screen are present by default in this database and data source.
In principle you can name these fields any way you want, but to enable Adlib to automatically merge-in EXIF metadata when the user links an image to a record in Multimedia documentation or opens an existing record in that data source, these field names have to comply to a certain syntax, namely: EXIF.PropertyTag<Adlib EXIF field name>, and have to be the same in all Adlib field name translations. See the table at the bottom of this page for a list of all available Adlib EXIF property field names. To show this metadata in your Adlib application, you’ll have to add the new Adlib field tags to existing or new screens.

IPTC - To enable Adlib to automatically merge-in IPTC metadata when the user links an image to a record in Multimedia documentation or opens an existing record in that data source, the target field names have to comply to a certain syntax, namely: IPTC.<IPTC property name or field name>. Replace <IPTC property name or field name> by an actual (case-sensitive) property/field name and leave out the brackets. For the “Copyright Notice” metadata for example: IPTC.CopyrightNotice, or IPTC.CiAdrExtadr for “Contact info: address.” Note that the full Adlib field name has to be the same (English) for all interface languages available in your application. Also, if you want all repetitions of any repeated IPTC tags (e.g. for keywords) to be copied to as many occurrences of a repeated Adlib tag, then the Adlib tag must be a repeated field in the data dictionary as well as on the screen.
To show this metadata in your Adlib application, you’ll have to add the new Adlib tags to existing or new screens.

Example

An example of a tag pair mapping for a PHOTO database in a 3.4 model application including both Windows metadata and EXIF metadata is the following:

Source

Destination

PATH

B1

FILE

FN

WRITEDATE

%d

A002

%x

A003

%y

A002 is the width of the photo, A003 is its height.

Since some information in the source tags may have a format different from what you would like to see in the destination tags, you can write an adapl and execute it during import by setting it on the Options tab of the import job, as the Storage adapl.
In this example, the metadata will be stored in the PHOTO database. The first two destination tags already existed in that database en are defined in the data dictionary, the last three are temporary tags. With an adapl we reformat the imported data in B1 and FN and we also reformat and/or concatenate the imported data from the temporary tags and put it in other (existing) PHOTO tags. The adapl which performs these conversions may look as follows:

* images.ada ( import adapl for image metadata, using
* JPEGs with EXIF tags)
* 2005.06.02  Initial coding

* convert URL to relative path
B1 = '..\images' + after$(1, B1, 'images')
FN = cvt$$(FN, 2) /* convert file name to lower case
FN = before$(1, FN, '.jpg') /* remove extension

* generate object number
* object number is reproduction ref. without subnumber
IN = before$(1, FN, '-')

* process reproduction date
BD = right$(%d, 4) + '-' + mid$(%d, 4, 2) + '-' + ~
    left$(%d, 2) /* ISO date

* process reproduction format
* enable the line below if no EXIF tags are available
* FM = FM + ' bytes'
 
* disable the line below if no EXIF tags are available
FM = %x + ' x ' + %y + ' Pixel'

* default fields
RP = 'JPG' /* reproduction type
ni = 'Conversion Axiell ALM Netherlands' /* input name
di = date$(8) /* input date

* remove temporary fields
%d = null
%x = null
%y = null

end

 

Full list of available Adlib EXIF field names and hexadecimal tags

For more information about the EXIF properties listed below, look up the relevant property in the EXIF standard definition (http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf) by using the indicated Hex tag preceded by 0x: the EXIF field names (the part behind EXIF.PropertyTag) used in Adlib EXIF properties may differ slightly from the official standard EXIF field names.

Adlib field name (case-sensitive)

Hex tag

Comments

EXIF.PropertyTagExifIFD

8769

 

EXIF.PropertyTagGpsIFD

8825

 

EXIF.PropertyTagNewSubfileType

00FE

 

EXIF.PropertyTagSubfileType

00FF

 

EXIF.PropertyTagImageWidth

0100

 

EXIF.PropertyTagImageHeight

0101

 

EXIF.PropertyTagBitsPerSample

0102

 

EXIF.PropertyTagCompression

0103

 

EXIF.PropertyTagPhotometricInterp

0106

 

EXIF.PropertyTagThreshHolding

0107

 

EXIF.PropertyTagCellWidth

0108

 

EXIF.PropertyTagCellHeight

0109

 

EXIF.PropertyTagFillOrder

010A

 

EXIF.PropertyTagDocumentName

010D

 

EXIF.PropertyTagImageDescription

010E

 

EXIF.PropertyTagEquipMake

010F

 

EXIF.PropertyTagEquipModel

0110

 

EXIF.PropertyTagStripOffsets

0111

 

EXIF.PropertyTagOrientation

0112

 

EXIF.PropertyTagSamplesPerPixel

0115

 

EXIF.PropertyTagRowsPerStrip

0116

 

EXIF.PropertyTagStripBytesCount

0117

 

EXIF.PropertyTagMinSampleValue

0118

 

EXIF.PropertyTagMaxSampleValue

0119

 

EXIF.PropertyTagXResolution

011A

Image resolution in width direction

EXIF.PropertyTagYResolution

011B

Image resolution in height direction

EXIF.PropertyTagPlanarConfig

011C

Image data arrange-
ment

EXIF.PropertyTagPageName

011D

 

EXIF.PropertyTagXPosition

011E

 

EXIF.PropertyTagYPosition

011F

 

EXIF.PropertyTagFreeOffset

0120

 

EXIF.PropertyTagFreeByteCounts

0121

 

EXIF.PropertyTagGrayResponseUnit

0122

 

EXIF.PropertyTagGrayResponseCurve

0123

 

EXIF.PropertyTagT4Option

0124

 

EXIF.PropertyTagT6Option

0125

 

EXIF.PropertyTagResolutionUnit

0128

Unit of X and Y resolution

EXIF.PropertyTagPageNumber

0129

 

EXIF.PropertyTagTransferFuncition

012D

 

EXIF.PropertyTagSoftwareUsed

0131

 

EXIF.PropertyTagDateTime

0132

 

EXIF.PropertyTagArtist

013B

 

EXIF.PropertyTagHostComputer

013C

 

EXIF.PropertyTagPredictor

013D

 

EXIF.PropertyTagWhitePoint

013E

 

EXIF.PropertyTagPrimaryChromaticities

013F

 

EXIF.PropertyTagColorMap

0140

 

EXIF.PropertyTagHalftoneHints

0141

 

EXIF.PropertyTagTileWidth

0142

 

EXIF.PropertyTagTileLength

0143

 

EXIF.PropertyTagTileOffset

0144

 

EXIF.PropertyTagTileByteCounts

0145

 

EXIF.PropertyTagInkSet

014C

 

EXIF.PropertyTagInkNames

014D

 

EXIF.PropertyTagNumberOfInks

014E

 

EXIF.PropertyTagDotRange

0150

 

EXIF.PropertyTagTargetPrinter

0151

 

EXIF.PropertyTagExtraSamples

0152

 

EXIF.PropertyTagSampleFormat

0153

 

EXIF.PropertyTagSMinSampleValue

0154

 

EXIF.PropertyTagSMaxSampleValue

0155

 

EXIF.PropertyTagTransferRange

0156

 

EXIF.PropertyTagJPEGProc

0200

 

EXIF.PropertyTagJPEGInterFormat

0201

 

EXIF.PropertyTagJPEGInterLength

0202

 

EXIF.PropertyTagJPEGRestartInterval

0203

 

EXIF.PropertyTagJPEGLosslessPredictors

0205

 

EXIF.PropertyTagJPEGPointTransforms

0206

 

EXIF.PropertyTagJPEGQTables

0207

 

EXIF.PropertyTagJPEGDCTables

0208

 

EXIF.PropertyTagJPEGACTables

0209

 

EXIF.PropertyTagYCbCrCoefficients

0211

 

EXIF.PropertyTagYCbCrSubsampling

0212

 

EXIF.PropertyTagYCbCrPositioning

0213

 

EXIF.PropertyTagREFBlackWhite

0214

 

EXIF.PropertyTagICCProfile

8773

This TAG is defined by ICC for embedded ICC in TIFF

EXIF.PropertyTagGamma

0301

 

EXIF.PropertyTagICCProfileDescriptor

0302

 

EXIF.PropertyTagSRGBRenderingIntent

0303

 

EXIF.PropertyTagImageTitle

0320

 

EXIF.PropertyTagCopyright

8298

 

 

 

 

// Extra tags (Like Adobe Image Information tags etc.)

 

 

EXIF.PropertyTagResolutionXUnit

5001

 

EXIF.PropertyTagResolutionYUnit

5002

 

EXIF.PropertyTagResolutionXLengthUnit

5003

 

EXIF.PropertyTagResolutionYLengthUnit

5004

 

EXIF.PropertyTagPrintFlags

5005

 

EXIF.PropertyTagPrintFlagsVersion

5006

 

EXIF.PropertyTagPrintFlagsCrop

5007

 

EXIF.PropertyTagPrintFlagsBleedWidth

5008

 

EXIF.PropertyTagPrintFlagsBleedWidthScale

5009

 

EXIF.PropertyTagHalftoneLPI

500A

 

EXIF.PropertyTagHalftoneLPIUnit

500B

 

EXIF.PropertyTagHalftoneDegree

500C

 

EXIF.PropertyTagHalftoneShape

500D

 

EXIF.PropertyTagHalftoneMisc

500E

 

EXIF.PropertyTagHalftoneScreen

500F

 

EXIF.PropertyTagJPEGQuality

5010

 

EXIF.PropertyTagGridSize

5011

 

EXIF.PropertyTagThumbnailFormat

5012

1 = JPEG, 0 = RAW RGB

EXIF.PropertyTagThumbnailWidth

5013

 

EXIF.PropertyTagThumbnailHeight

5014

 

EXIF.PropertyTagThumbnailColorDepth

5015

 

EXIF.PropertyTagThumbnailPlanes

5016

 

EXIF.PropertyTagThumbnailRawBytes

5017

 

EXIF.PropertyTagThumbnailSize

5018

 

EXIF.PropertyTagThumbnailCompressedSize

5019

 

EXIF.PropertyTagColorTransferFunction

501A

 

EXIF.PropertyTagThumbnailData

501B

RAW thumbnail bits in JPEG format or RGB format, depends on EXIF.Pro-
pertyTag-
Thumbnail-
Format

 

 

 

// Thumbnail related tags

 

 

EXIF.PropertyTagThumbnailImageWidth

5020

Thumbnail width

EXIF.PropertyTagThumbnailImageHeight

5021

Thumbnail height

EXIF.PropertyTagThumbnailBitsPerSample

5022

Number of bits per component

EXIF.PropertyTagThumbnailCompression

5023

Compres-
sion scheme

EXIF.PropertyTagThumbnailPhotometricInterp

5024

Pixel composi-
tion

EXIF.PropertyTagThumbnailImageDescription

5025

Image tile

EXIF.PropertyTagThumbnailEquipMake

5026

Manufac-turer of image input equipment

EXIF.PropertyTagThumbnailEquipModel

5027

Model of image input equipment

EXIF.PropertyTagThumbnailStripOffsets

5028

Image data location

EXIF.PropertyTagThumbnailOrientation

5029

Orientation of image

EXIF.PropertyTagThumbnailSamplesPerPixel

502A

Number of compo-
nents

EXIF.PropertyTagThumbnailRowsPerStrip

502B

Number of rows per strip

EXIF.PropertyTagThumbnailStripBytesCount

502C

Bytes per compressed strip

EXIF.PropertyTagThumbnailResolutionX

502D

Resolution in width direction

EXIF.PropertyTagThumbnailResolutionY

502E

Resolution in height direction

EXIF.PropertyTagThumbnailPlanarConfig

502F

Image data arrange-
ment

EXIF.PropertyTagThumbnailResolutionUnit

5030

Unit of X and Y resolution

EXIF.PropertyTagThumbnailTransferFunction

5031

Transfer function

EXIF.PropertyTagThumbnailSoftwareUsed

5032

Software used

EXIF.PropertyTagThumbnailDateTime

5033

File change date and time

EXIF.PropertyTagThumbnailArtist

5034

Person who created the image

EXIF.PropertyTagThumbnailWhitePoint

5035

White point chroma-
ticity

EXIF.PropertyTagThumbnailPrimaryChromatici-
ties

5036

Chroma-
ticities of primaries

EXIF.PropertyTagThumbnailYCbCrCoefficients

5037

Color space transfor-
mation coefficients

EXIF.PropertyTagThumbnailYCbCrSubsampling

5038

Sub-
sampling ratio of Y to C

EXIF.PropertyTagThumbnailYCbCrPositioning

5039

Y and C position

EXIF.PropertyTagThumbnailRefBlackWhite

503A

Pair of black and white reference values

EXIF.PropertyTagThumbnailCopyRight

503B

Copyright holder

EXIF.PropertyTagLuminanceTable

5090

 

EXIF.PropertyTagChrominanceTable

5091

 

EXIF.PropertyTagFrameDelay

5100

 

EXIF.PropertyTagLoopCount

5101

 

EXIF.PropertyTagPixelUnit

5110

Unit specifier for pixel/unit

EXIF.PropertyTagPixelPerUnitX

5111

Pixels per unit in X

EXIF.PropertyTagPixelPerUnitY

5112

Pixels per unit in Y

EXIF.PropertyTagPaletteHistogram

5113

Palette histogram

 

 

 

// EXIF specific tags

 

 

EXIF.PropertyTagExifExposureTime

829A

 

EXIF.PropertyTagExifFNumber

829D

 

EXIF.PropertyTagExifExposureProg

8822

 

EXIF.PropertyTagExifSpectralSense

8824

 

EXIF.PropertyTagExifISOSpeed

8827

 

EXIF.PropertyTagExifOECF

8828

 

EXIF.PropertyTagExifVer

9000

 

EXIF.PropertyTagExifDTOrig

9003

Date & time of original

EXIF.PropertyTagExifDTDigitized

9004

Date & time of digital data generation

EXIF.PropertyTagExifCompConfig

9101

 

EXIF.PropertyTagExifCompBPP

9102

 

EXIF.PropertyTagExifShutterSpeed

9201

 

EXIF.PropertyTagExifAperture

9202

 

EXIF.PropertyTagExifBrightness

9203

 

EXIF.PropertyTagExifExposureBias

9204

 

EXIF.PropertyTagExifMaxAperture

9205

 

EXIF.PropertyTagExifSubjectDist

9206

 

EXIF.PropertyTagExifMeteringMode

9207

 

EXIF.PropertyTagExifLightSource

9208

 

EXIF.PropertyTagExifFlash

9209

 

EXIF.PropertyTagExifFocalLength

920A

 

EXIF.PropertyTagExifMakerNote

927C

 

EXIF.PropertyTagExifUserComment

9286

 

EXIF.PropertyTagExifDTSubsec

9290

Date & time sub-
seconds

EXIF.PropertyTagExifDTOrigSS

9291

Date & time original sub-
seconds

EXIF.PropertyTagExifDTDigSS

9292

Date & time digitized sub-
seconds

EXIF.PropertyTagExifFPXVer

A000

 

EXIF.PropertyTagExifColorSpace

A001

 

EXIF.PropertyTagExifPixXDim

A002

 

EXIF.PropertyTagExifPixYDim

A003

 

EXIF.PropertyTagExifRelatedWav

A004

Related sound file

EXIF.PropertyTagExifInterop

A005

 

EXIF.PropertyTagExifFlashEnergy

A20B

 

EXIF.PropertyTagExifSpatialFR

A20C

Spatial frequency response

EXIF.PropertyTagExifFocalXRes

A20E

Focal plane X resolution

EXIF.PropertyTagExifFocalYRes

A20F

Focal plane Y resolution

EXIF.PropertyTagExifFocalResUnit

A210

Focal plane resolution unit

EXIF.PropertyTagExifSubjectLoc

A214

 

EXIF.PropertyTagExifExposureIndex

A215

 

EXIF.PropertyTagExifSensingMethod

A217

 

EXIF.PropertyTagExifFileSource

A300

 

EXIF.PropertyTagExifSceneType

A301

 

EXIF.PropertyTagExifCfaPattern

A302

 

EXIF.PropertyTagGpsVer

0000

 

EXIF.PropertyTagGpsLatitudeRef

0001

 

EXIF.PropertyTagGpsLatitude

0002

 

EXIF.PropertyTagGpsLongitudeRef

0003

 

EXIF.PropertyTagGpsLongitude

0004

 

EXIF.PropertyTagGpsAltitudeRef

0005

 

EXIF.PropertyTagGpsAltitude

0006

 

EXIF.PropertyTagGpsGpsTime

0007

 

EXIF.PropertyTagGpsGpsSatellites

0008

 

EXIF.PropertyTagGpsGpsStatus

0009

 

EXIF.PropertyTagGpsGpsMeasureMode

000A

 

EXIF.PropertyTagGpsGpsDop

000B

Measure-
ment precision

EXIF.PropertyTagGpsSpeedRef

000C

 

EXIF.PropertyTagGpsSpeed

000D

 

EXIF.PropertyTagGpsTrackRef

000E

 

EXIF.PropertyTagGpsTrack

000F

 

EXIF.PropertyTagGpsImgDirRef

0010

 

EXIF.PropertyTagGpsImgDir

0011

 

EXIF.PropertyTagGpsMapDatum

0012

 

EXIF.PropertyTagGpsDestLatRef

0013

 

EXIF.PropertyTagGpsDestLat

0014

 

EXIF.PropertyTagGpsDestLongRef

0015

 

EXIF.PropertyTagGpsDestLong

0016

 

EXIF.PropertyTagGpsDestBearRef

0017

 

EXIF.PropertyTagGpsDestBear

0018

 

EXIF.PropertyTagGpsDestDistRef

0019

 

EXIF.PropertyTagGpsDestDist

001A