MATLAB: Time information in TIFF files

tifftime stamp

I am using "imwrite" and "WriteMode" "Append" to create a multi-tif file (a movie). I would like to include information about the time that each tif image was created in the multi-tif file. How do I add time information to the tif files?

Best Answer

There is a tag called 'DateTime' that is intended for this purpose, but IMWRITE can only write a limited subset of TIFF tags, and 'DateTime' is not in that subset.
The Tiff object (introduced in R2009b) can manipulate a much broader set of tags, so it may suit your purposes better than IMWRITE. For example, to write out a multi-page TIFF consisting of the first through the 12th eigenfunctions of the L-shaped membrane, one could do something like the following:
t = Tiff('myfile.tif','w');
tagstruct.ImageWidth = 31;
tagstruct.ImageLength = 31;
tagstruct.Photometric = Tiff.Photometric.MinIsBlack;
tagstruct.BitsPerSample = 64;
tagstruct.SampleFormat = Tiff.SampleFormat.IEEEFP;
tagstruct.RowsPerStrip = 31;
tagstruct.PlanarConfiguration = Tiff.PlanarConfiguration.Chunky;
for k = 1:12
data = membrane(k);
tagstruct.DateTime = datestr(now,31);
t.setTag(tagstruct);
t.write(data);
t.writeDirectory();
end
t.close();
The 'DateTime' tag is limited to 20 characters, so if you need more temporal resolution than that, you might have to hijack another tag for your purposes, such as 'ImageDescription' or 'XMP'.