---
name: "TIFFFieldQuery"
section: "3tiff"
platform: "linux"
package: "libtiff-dev"
version: "4.7.0-3+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/TIFFFieldQuery"
---

# TIFFFieldQuery(3tiff)

routines to query TIFF field information

## NAME

TIFFFieldQuery - routines to query TIFF field information

## SYNOPSIS

```
#include <tiffio.h>
```

- **const TIFFField \*TIFFFieldWithName(TIFF \*tif, const char \*field\_name)**

  - **const TIFFField \*TIFFFieldWithTag(TIFF \*tif, uint32\_t tag)**

  - **const TIFFField \*TIFFFindField(TIFF \*tif, uint32\_t tag, TIFFDataType dt)**

  - **int TIFFFieldIsAnonymous(const TIFFField \*fip)**

  - **int TIFFFieldSetGetSize(const TIFFField \*fip)**

  - **int TIFFFieldSetGetCountSize(const TIFFField \*fip)**

  ## DESCRIPTION

*TIFFFieldWithName()* and *TIFFFieldWithTag()* return a pointer to TIFF field information structure *fip* by the tag's *field\_name* or its *tag* number.

*TIFFFindField()* searches for the TIFF field information structure *fip* of a given *tag* number and a specific *TIFFDataType dt*. With dt== **TIFF\_ANY** the behaviour is the same than for *TIFFFieldWithTag()*.

All three functions return **NULL**, when the tag is not registered within **libtiff** (see also *Default Tag Auto-registration* ).

Such a *TIFFDataType* dependent search could be useful when the same tag is defined twice but with different data types, which is true for rare cases like TIFFTAG\_XCLIPPATHUNITS. However, the **libtiff** does currently not support multiple definitions of the same tag.

The following routines return status information about TIFF fields.

**fip** is a field information pointer previously returned by *TIFFFindField()*, *TIFFFieldWithTag()*, *TIFFFieldWithName()*.

*TIFFFieldIsAnonymous()* returns true (nonzero) if the field, read from file, is unknown to **libtiff** and an anonymous field has been auto-registered. Return is zero "0" if field is known to **libtiff**. See  *Default Tag Auto-registration*   for more information.

*TIFFFieldSetGetSize()* returns the data size in bytes of the field data type used for **libtiff** internal storage. This is also the data size of the parameter to be provided to *TIFFSetField()* and *TIFFGetField()*. Custom **TIFF\_RATIONAL** values can be stored internally either as **float** or **double**. *TIFFFieldSetGetSize()* would then return "4" or "8", respectively.

*TIFFFieldSetGetCountSize()* returns size of **count** parameter of *TIFFSetField()* and *TIFFGetField()* and also if it is required:  0=none, 2= **uint16\_t**, 4= **uint32\_t**. See also description of *TIFFFieldReadCount()*.

## DIAGNOSTICS

None.

## SEE ALSO

*TIFFFieldDataType* (3tiff), *TIFFFieldName* (3tiff), *TIFFFieldPassCount* (3tiff), *TIFFFieldReadCount* (3tiff), *TIFFFieldTag* (3tiff), *TIFFFieldWriteCount* (3tiff), *libtiff* (3tiff)

## AUTHOR

LibTIFF contributors

## COPYRIGHT

1988-2022, LibTIFF contributors
