creating a new TIFF tag field ?

Hi everyone, I would like to create a new Tag entry in TIFF metadata. I tried :
tags.angle_roll = 0.5698;
geotiffwrite('test1.tif', A, R,'TiffTags',tags);
And I get the error :
Expected TiffTags.angle_roll to match one of
these strings:
'Artist', 'Compression', 'Copyright', 'DateTime',
'DocumentName', 'DotRange', 'ExtraSamples',
'FillOrder', 'Group3Options', 'Group4Options',
'HalfToneHints', 'HostComputer', 'ICCProfile',
'ImageDepth', 'ImageDescription', 'InkNames',
'InkSet', 'JPEGColorMode', 'JPEGQuality', 'Make',
'MaxSampleValue', 'MinSampleValue', 'Model',
'NumberOfInks', 'Orientation', 'PageName',
'PageNumber', 'PhotometricInterpretation',
'Photoshop', 'PlanarConfiguration',
'PrimaryChromaticities', 'ReferenceBlackWhite',
'ResolutionUnit', 'RichTIFFIPTC', 'RowsPerStrip',
'SGILogDataFmt', 'SMaxSampleValue',
'SMinSampleValue', 'SToNits', 'Software',
'TargetPrinter', 'Thresholding', 'TileLength',
'TileWidth', 'TransferFunction', 'WhitePoint',
'XMP', 'XPosition', 'XResolution',
'YCbCrCoefficients', 'YCbCrPositioning',
'YCbCrSubSampling', 'YPosition', 'YResolution',
'ZipQuality'
The input, 'angle_roll', did not match any of the
valid strings.
So is it impossible to create a new Tag entry in tif's metadata with matlab ?

Réponses (3)

Geoffrey
Geoffrey le 22 Avr 2016

1 vote

Well can you put a sample code please, I don't get it.
For instance if I want to add a Metadata field called 'IhateTiffFormat' and I want to put the value 'yes' inside. I tried:
tagperso.IhateTiffFormat = 'yes';
t.setTag(32770, tagperso);
And I get the error :
Error using tifflib
Tag number (32770) is unrecognized by the TIFF
library.
For creating IFD it's so badly explained in matlab help that I don't understand how to use it... Ther is no sample to see how to create one IFD? How to read a subIFD? How to add new tags in a IFD?
Walter Roberson
Walter Roberson le 21 Avr 2016

0 votes

TIFF does not define its tags by name. TIFF tags are defined by numeric value, with any alphabetic name being for convenience.
To create a new tag, you will need to use TIFF settag() with a tag number 32768 or higher, and it being recommended to avoid the Adobe tags that have become effectively extensions. The alternative is to create a private IFD and put whatever tags one wants in there. What-ever you do you will need to coordinate with whatever has to read the file, since the names of the tags are not stored in the file.
steve solomon
steve solomon le 21 Déc 2019

0 votes

I tried using a tag number 32768 or higher
> setTag(h,32769,'test tag')
and get the error message:
Error using tifflib
Tag number (32769) is unrecognized by the TIFF library.
Error in Tiff/setTag (line 1411)
tifflib('setField',obj.FileID,varargin{:});
it doesn't appear that new tags can be created using settag.

4 commentaires

Patrick Naulleau
Patrick Naulleau le 1 Avr 2020
Did this ever get resolved? I've run into the same problem
steve solomon
steve solomon le 1 Avr 2020
nope, and the more i read about the tiff header/metadata capabilities, the more disgusted i got. not using it for ANYTHING.
Patrick Naulleau
Patrick Naulleau le 6 Avr 2020
Modifié(e) : Patrick Naulleau le 6 Avr 2020
Thanks, very frustrating! I just learned that Labview's TIFF object can easily handle this. Also crazy that the TIFF object cannot even read private Tags whereas imfinfo has no problem on the reading side. How could this not be a priority for Matlab to address?
steve solomon
steve solomon le 6 Avr 2020
Mathsoft is entirely inscrutable. I've had numerous issues with their lack of and poor support for image formats. Had an ever worse time with the FITS standard. My understanding is that Python does significantly better in this regard, but open source brings its own set of headaches.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Import and Analysis dans Centre d'aide et File Exchange

Question posée :

le 21 Avr 2016

Commenté :

le 6 Avr 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by