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

# TIFFReadRGBAStrip(3tiff)

read and decode an image strip into a fixed-format raster

## NAME

TIFFReadRGBAStrip - read and decode an image strip into a fixed-format raster

## SYNOPSIS

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

- **int TIFFReadRGBAStrip(TIFF \*tif, uint32\_t row, uint32\_t \*raster)**

  - **int TIFFReadRGBAStripExt(TIFF \*tif, uint32\_t row, uint32\_t \*raster, int stop\_on\_error)**

  ## DESCRIPTION

*TIFFReadRGBAStrip()* reads a single strip of a strip-based image into memory, storing the result in the user supplied RGBA *raster*. The raster is assumed to be an array of **ImageWidth** × **RowsPerStrip** 32-bit entries, where **ImageWidth** is the width of the image (**TIFFTAG\_IMAGEWIDTH**) and **RowsPerStrip** is the maximum lines in a strip (**TIFFTAG\_ROWSPERSTRIP**).

*TIFFReadRGBAStripExt()* provides the paramater *stop\_on\_error*. Its behaviour is described at *TIFFReadRGBAImage*.

The *row* value should be the row of the first row in the strip (*strip* × **RowsPerStrip**, zero based).

Note that the raster is assume to be organized such that the pixel at location (*x*, *y*) is *raster* \[ *y* × *width* + *x* \]; with the raster origin in the *lower-left hand corner* of the strip. That is bottom to top organization. When reading a partial last strip in the file the last line of the image will begin at the beginning of the buffer.

Raster pixels are 8-bit packed red, green, blue, alpha samples. The macros *TIFFGetR*, *TIFFGetG*, *TIFFGetB*, and *TIFFGetA* should be used to access individual samples. Images without Associated Alpha matting information have a constant Alpha of 1.0 (255).

See the *TIFFRGBAImage* page for more details on how various image types are converted to RGBA values.

## NOTES

Samples must be either 1, 2, 4, 8, or 16 bits. Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. **SamplesPerPixel** - **ExtraSamples**).

Palette image colormaps that appear to be incorrectly written as 8-bit values are automatically scaled to 16-bits.

*TIFFReadRGBAStrip()* is just a wrapper around the more general *TIFFRGBAImage* facilities.  It's main advantage over the similar *TIFFReadRGBAImage()* function is that for large images a single buffer capable of holding the whole image doesn't need to be allocated, only enough for one strip.  The *TIFFReadRGBATile()* function does a similar operation for tiled images.

## RETURN VALUES

1 is returned if the image was successfully read and converted. Otherwise, 0 is returned if an error was encountered.

## DIAGNOSTICS

All error messages are directed to the *TIFFErrorExtR()* routine.

**"Sorry, can not handle %d-bit pictures"**:

The image had **BitsPerSample** other than 1, 2, 4, 8, or 16.

**"Sorry, can not handle %d-channel images"**:

The image had **SamplesPerPixel** other than 1, 3, or 4.

**Missing needed "PhotometricInterpretation" tag**:

The image did not have a tag that describes how to display the data.

**No "PhotometricInterpretation" tag, assuming RGB**:

The image was missing a tag that describes how to display it, but because it has 3 or 4 samples/pixel, it is assumed to be RGB.

**No "PhotometricInterpretation" tag, assuming min-is-black\\fP**:

The image was missing a tag that describes how to display it, but because it has 1 sample/pixel, it is assumed to be a grayscale or bilevel image.

**"No space for photometric conversion table"**:

There was insufficient memory for a table used to convert image samples to 8-bit RGB.

**Missing required "Colormap" tag**:

A Palette image did not have a required **Colormap** tag.

**"No space for tile buffer"**:

There was insufficient memory to allocate an i/o buffer.

**"No space for strip buffer"**:

There was insufficient memory to allocate an i/o buffer.

**"Can not handle format"**:

The image has a format (combination of **BitsPerSample**, **SamplesPerPixel**, and **PhotometricInterpretation**) that *TIFFReadRGBAImage()* can not handle.

**"No space for B&W mapping table"**:

There was insufficient memory to allocate a table used to map grayscale data to RGB.

**"No space for Palette mapping table"**:

There was insufficient memory to allocate a table used to map data to 8-bit RGB.

## SEE ALSO

*TIFFOpen* (3tiff), *TIFFRGBAImage* (3tiff), *TIFFReadRGBAImage* (3tiff), *TIFFReadRGBATile* (3tiff), *libtiff* (3tiff)

## AUTHOR

LibTIFF contributors

## COPYRIGHT

1988-2022, LibTIFF contributors
