This project has moved. For the latest updates, please go here.

IPTC tags

Feb 4, 2015 at 3:32 PM
I've been asked to add IPTC tags to images across a site which deals with licensing images of works of art, for reproduction in magazines and so on.

They would like me to populate each image with the fields:
  • Creator
  • Headline
  • Copyright notice
  • Copyright status
  • Rights usage terms
However, not all these options appear to be available to me under the IptcTag enum.

According to this website:
http://www.photometadata.org/meta-resources-field-guide-to-metadata

I think I can alternatively use "Byline" for the creator field.... please correct me if I'm wrong.... and I have no idea where I should place the Rights Usage Terms data.

Should I use a different field, or one of the custom fields?

This is my first time looking into IPTC tags, so if there's any basic info you think I should know, please tell me!
Coordinator
Feb 5, 2015 at 6:49 PM
I don't have much experience with IPTC profiles but it looks like you can add the first 3 without any problems. It looks like the last two are added by Adobe. I found the following document: http://www.controlledvocabulary.com/imagedatabases/iptc_core_mapped.pdf. For those field there are no numbers specified. Is it possible that you enter those 5 fields with Photoshop and share a link to that image so I can figure out which number they use for those fields?
Feb 5, 2015 at 8:16 PM
Thank you very much! I don't actually have a copy of Photoshop either, so I'll ask around...
Coordinator
Feb 5, 2015 at 8:23 PM
Edited Feb 5, 2015 at 9:15 PM
My co-workers can probably help out with this also. I will ask them tomorrow if you don't provide me with a file before that.
Feb 6, 2015 at 9:27 AM
Edited Feb 6, 2015 at 9:54 AM
I asked my client if they could provide a sample image, so here it is:

http://gbimg.org/zomqU

I used gbimg.org so I could take a look at the IPTC data.

It looks like they've used By Line for the artist's name, and Rights and Usage Terms are actually two separate fields. I'm going to ask for some clarification.

EDIT: The client said she uses the latest releases of Adobe Bridge CC and Adobe Photoshop CC, and Rights Usage Terms is a single field in the interface, so I asked her to take a screenshot of the interface in Photoshop so we can see how the fields match up.

Here you go:
http://imgur.com/Youn9dX
Coordinator
Feb 6, 2015 at 11:19 AM
Edited Feb 6, 2015 at 11:20 AM
It looks like some of the information is from the XMP profile. As an experiment you could modify this and see which field are changed. You can get the XMP profile with the GetXmpProfile method. The object returned contains a ToXDocument method. I will add a static FromXDocument in the next release. Contact me through CodePlex if you need this in a development build before the next release.
Feb 6, 2015 at 6:48 PM
Thank you for the info!

I have found out that Rights Usage Terms and Copyright Status are both under there. Copyright status is a flag simply called "Marked", which is why it's hard to spot.

This post I found on StackOverflow shows how to edit them via the MS WIC stuff:

http://stackoverflow.com/questions/26055115/jpeg-writing-xmp-for-null-property

So I could try using that for editing the XMP profile, but I'd rather not bring all that in when I'm already using Magick.NET for resizing and watermarking.

How will FromXDocument work? I might just wait for that. :)
Coordinator
Feb 6, 2015 at 7:03 PM
Edited Feb 6, 2015 at 7:06 PM
You could do something like this:
static void AlterXmpProfile(MagickImage image)
{
    XmpProfile profile = image.GetXmpProfile();
    XDocument doc = profile.ToXDocument();
      
    // Alter the document;

    profile = XmpProfile.FromXDocument(doc);
    image.AddProfile(profile);
}

static void AlterIptcProfile(MagickImage image)
{
  IptcProfile profile = image.GetIptcProfile();

  // Alter the profile

  image.AddProfile(profile);
}

static void SetCopyright(string fileName)
{
  using (MagickImage image = new MagickImage(fileName))
  {
    AlterXmpProfile(image);
    AlterIptcProfile(image);

    image.Write(fileName);
  }
}
Feb 9, 2015 at 10:47 AM
That will be excellent. Thank you!