Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

EXIF tag Editor for JPG images

0.00/5 (No votes)
18 Sep 2006 1  
JPG images EXIF tag Editor

Click to enlarge ...

Introduction

First of all, I must say that there are very good articles (here on codeProject) dealing with EXIF tag reading:

and some others explaining EXIF tag writing:

But as it happens most of the time, I needed a small app that would allow me to update a specific EXIF tag, and I wanted it done in C# (for learning purposes). After reading the previous articles and some other references carefully, I decided to go ahead and write a binary to solve my problems.

So, what we have here is a utility that updates EXIF tag '0x9003' (Tag DateTimeOriginal) and EXIF tag '0x9004' (Tag DateTimeDigitized). Other EXIF tags could be updated using the same technique:

.
.
.
Encoding _Encoding = Encoding.UTF8;
Image theImage = new Bitmap(m_currImageFileTemp);
PropertyItem propItem36867 = theImage.GetPropertyItem(36867);

propItem36867.Value = _Encoding.GetBytes(m_textPropertyValue.Text + '\0');
theImage.SetPropertyItem(propItem36867);
theImage.Save(m_currImageFile);
.
.
.

Where Encoding, Image, Bitmap and PropertyItem are .NET 2.0 classes.

You can find information about EXIF standard here.

I hope you find the code useful.

Using the utility

As you can see in the image enclosed, the utility reads the date to update from a free input. The format for that string MUST be 'YYYY:MM:DD hh:mm:ss', in any other case the program won't be able to update the EXIF tags safely.

I am enclosing a picture with EXIF tags for testing purposes: you will find it in the root folder of the zip file.

The code was compiled using Microsoft Visual Studio 2005, I can't tell if it will compile with previous versions. To execute it you will need the .NET framework 2.0.

About Jose Javier Sanjos�

Software architect, system administrator, web designer. I have been using C++ for the last 16 years, mainly until .NET come around (even though I try not to follow Microsoft's trends too close anymore).

Nowadays I am very focused in XML, XSLT, JavaScript, Java, ASP.NET, PHP, and well, yes, C#.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here