Fotoware/Fotostation config file

Started by mikmach, September 23, 2016, 10:43:54 AM

Previous topic - Next topic

mikmach

Hello,

I am managing digital archive with help of Fotoware software. Its scripting and automation capability is limited in rather annoying ways. Bash+exiftool for help!
I've found Phil's short template for Fotoware proprietary metadata tags and extended it into full set defined in Fotostation 7.0.555.

Tags are not defined strictly as in Fotoware product. Self-limitations stem from Fotostation feature - it puts metadata not only in XMP space but forces it into IIM hierarchy usually bending or even breaking specification. Because exiftool will use only XMP there are no conflicts.

Beware - use of this config file will not bring full FS experience to user: metadata will be written only in XMP and not in IIM (IPTC), hence some things may be broken on particular setups depending on Fotoware IIM-writing features. I am using only XMP space and this config file is working for me.

Big thanks to Phil for great program!

m.

Phil Harvey

Thanks for posting this.  I'm thinking that maybe it could be useful to include this in the exiftool distribution.  The only thing I would like to change is the date tags, which should be defined like this to implement all of the ExifTool features if they use the standard XMP date/time formatting:

    ReferenceDate    => {
        Groups => { 2 => 'Time' }
        Writable => 'date',
        Shift => 'Time',
        PrintConv => '$self->ConvertDateTime($val)',
        PrintConvInv => '$self->InverseDateTime($val,undef,1)',
    },
    ReleaseDate    => {
        Groups => { 2 => 'Time' }
        Writable => 'date',
        Shift => 'Time',
        PrintConv => '$self->ConvertDateTime($val)',
        PrintConvInv => '$self->InverseDateTime($val,undef,1)',
    },


- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

mikmach

I am glad you like it :)

Fotostation uses standard ISO time/date format but I will be able to test only on Monday/Tuesday.

From Exiftool code and some experiments looks like it is not possible to limit length of string in XMP tags?

Phil Harvey

You can limit the length with the conversions.  If done in a print conversion (PrintConvInv), then the user will have the option to defeat it with -n.  I could implement this if you want and post an updated version of your config file.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

mikmach

Thanks for hints. In attached file you will find:

- included your extension of date (note: should work but not tested in Fotostation)
- implemented shortening of strings where limits are mixed (note: docs are saying that PrintConvInv should be used only with PrintConv but it works without)
- tried PRINT_CONV as default conversion for CustomField and UserDefined but it doesn't work (I last dabbled with Perl over 15 years ago and forgot almost everything)
- extended comments a bit

Phil Harvey

Quote from: mikmach on September 24, 2016, 06:25:34 AM
- included your extension of date (note: should work but not tested in Fotostation)

Looks good.

Quote- implemented shortening of strings where limits are mixed (note: docs are saying that PrintConvInv should be used only with PrintConv but it works without)

Great.  Hey!  Someone read the programming docs!!  :)  But they do say PrintConvInv is only necessary for writable tags when PrintConv is used, which is true.  I suppose they could also say that it is optional otherwise.  I will add this.

Quote- tried PRINT_CONV as default conversion for CustomField and UserDefined but it doesn't work (I last dabbled with Perl over 15 years ago and forgot almost everything)

I think this is because you want to define a default PrintConvInv, not PrintConv.  But it isn't your knowledge of Perl that is a problem, this is an ExifTool-specific feature, and I haven't provided a mechanism to define a default PrintConvInv.  You want to limit these tags to 256 characters when writing?  I'll see what I can do.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Phil Harvey

OK, how about this for inclusion in the production version?

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

mikmach

Thank you very much. I think it is ready for inclusion :)

Phil Harvey

Great, thanks.  It will appear in version 10.28.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).