2023.04.10 17:28 "Re: [Tiff] CFAREPEATPATTERNDIM and CFAPATTERN", by Sulau
PS could someone please explain how I should interpret the meaning of e.g. TIFF_SETGET_C16_UINT8
You can find a lot of writing and reading examples and hints in test\custom_dir_EXIF_231.c
TIFF_SETGET_C16_UINT8 means that the TIFFSetField() or TIFFGetField() function expects data of a dynamic (length is variable) UINT8 type array. A count parameter has to be provided to TIFFSetField() or TIFFGetField() of type uint16_t ("C16").
TIFFSetField(m_tiff, TIFFTAG_CFAPATTERN, 4, TIFF_CFAPattern_BGGR);
TIFFGetField(m_tiff, TIFFTAG_CFAPATTERN, &count16, &pByteArray);
count16 returns the number of read uint8_t values (which should be 4 because 4 bytes were written). The data is stored in an uint8_t array pointed to by pByteArray. Be aware, that this LibTIFF internally allocated memory will vanish if you setup / switch to a new IFD or close the file. Thus, you should copy the content into a byte array of your application.
When you want to access EXIF tags, then you have first to switch the EXIF "custom"-IFD. An example is in custom_dir_EXIF_231.c. And see also the LibTIFF documentation e.g. at http://www.simplesystems.org/libtiff/functions/TIFFCustomDirectory.html