1TIFFReadRGBAImage(3TIFF) TIFFReadRGBAImage(3TIFF)
2
3
4
6 TIFFReadRGBAImage, TIFFReadRGBAImageOriented - read and decode an image
7 into a fixed-format raster
8
10 #include <tiffio.h>
11
12 #define TIFFGetR(abgr) ((abgr) & 0xff)
13 #define TIFFGetG(abgr) (((abgr) >> 8) & 0xff)
14 #define TIFFGetB(abgr) (((abgr) >> 16) & 0xff)
15 #define TIFFGetA(abgr) (((abgr) >> 24) & 0xff)
16
17 int TIFFReadRGBAImage(TIFF *tif, uint32_t width, uint32_t height,
18 uint32_t *raster, int stopOnError)
19 int TIFFReadRGBAImageOriented(TIFF *tif, uint32_t width, uint32_t
20 height, uint32_t *raster, int orientation, int stopOnError)
21
23 TIFFReadRGBAImage reads a strip- or tile-based image into memory, stor‐
24 ing the result in the user supplied raster. The raster is assumed to
25 be an array of width times height 32-bit entries, where width must be
26 less than or equal to the width of the image (height may be any non-
27 zero size). If the raster dimensions are smaller than the image, the
28 image data is cropped to the raster bounds. If the raster height is
29 greater than that of the image, then the image data are placed in the
30 lower part of the raster. (Note that the raster is assume to be orga‐
31 nized such that the pixel at location (x,y) is raster[y*width+x]; with
32 the raster origin in the lower-left hand corner.)
33
34 TIFFReadRGBAImageOriented works like TIFFReadRGBAImage with except of
35 that user can specify the raster origin position with the orientation
36 parameter. Four orientations supported:
37
38 ORIENTATION_TOPLEFT
39 origin in top-left corner,
40
41 ORIENTATION_TOPRIGHT
42 origin in top-right corner,
43
44 ORIENTATION_BOTLEFT
45 origin in bottom-left corner and
46
47 ORIENTATION_BOTRIGHT
48 origin in bottom-right corner.
49
50 If you choose ORIENTATION_BOTLEFT result will be the same as returned
51 by the TIFFReadRGBAImage.
52
53 Raster pixels are 8-bit packed red, green, blue, alpha samples. The
54 macros TIFFGetR, TIFFGetG, TIFFGetB, and TIFFGetA should be used to ac‐
55 cess individual samples. Images without Associated Alpha matting in‐
56 formation have a constant Alpha of 1.0 (255).
57
58 TIFFReadRGBAImage converts non-8-bit images by scaling sample values.
59 Palette, grayscale, bilevel, CMYK, and YCbCr images are converted to
60 RGB transparently. Raster pixels are returned uncorrected by any col‐
61 orimetry information present in the directory.
62
63 The parameter stopOnError specifies how to act if an error is encoun‐
64 tered while reading the image. If stopOnError is non-zero, then an er‐
65 ror will terminate the operation; otherwise TIFFReadRGBAImage will con‐
66 tinue processing data until all the possible data in the image have
67 been requested.
68
70 In C++ the stopOnError parameter defaults to 0.
71
72 Samples must be either 1, 2, 4, 8, or 16 bits. Colorimetric sam‐
73 ples/pixel must be either 1, 3, or 4 (i.e. SamplesPerPixel minus Ex‐
74 traSamples).
75
76 Palettte image colormaps that appear to be incorrectly written as 8-bit
77 values are automatically scaled to 16-bits.
78
79 TIFFReadRGBAImage is just a wrapper around the more general TIFFRGBAIm‐
80 age(3TIFF) facilities.
81
83 1 is returned if the image was successfully read and converted. Other‐
84 wise, 0 is returned if an error was encountered and stopOnError is
85 zero.
86
88 All error messages are directed to the TIFFError(3TIFF) routine.
89
90 Sorry, can not handle %d-bit pictures. The image had BitsPerSample
91 other than 1, 2, 4, 8, or 16.
92
93 Sorry, can not handle %d-channel images. The image had SamplesPerPixel
94 other than 1, 3, or 4.
95
96 Missing needed "PhotometricInterpretation" tag. The image did not have
97 a tag that describes how to display the data.
98
99 No "PhotometricInterpretation" tag, assuming RGB. The image was miss‐
100 ing a tag that describes how to display it, but because it has 3 or 4
101 samples/pixel, it is assumed to be RGB.
102
103 No "PhotometricInterpretation" tag, assuming min-is-black. The image
104 was missing a tag that describes how to display it, but because it has
105 1 sample/pixel, it is assumed to be a grayscale or bilevel image.
106
107 No space for photometric conversion table. There was insufficient mem‐
108 ory for a table used to convert image samples to 8-bit RGB.
109
110 Missing required "Colormap" tag. A Palette image did not have a re‐
111 quired Colormap tag.
112
113 No space for tile buffer. There was insufficient memory to allocate an
114 i/o buffer.
115
116 No space for strip buffer. There was insufficient memory to allocate
117 an i/o buffer.
118
119 Can not handle format. The image has a format (combination of BitsPer‐
120 Sample, SamplesPerPixel, and PhotometricInterpretation) that TIFFRead‐
121 RGBAImage can not handle.
122
123 No space for B&W mapping table. There was insufficient memory to allo‐
124 cate a table used to map grayscale data to RGB.
125
126 No space for Palette mapping table. There was insufficient memory to
127 allocate a table used to map data to 8-bit RGB.
128
130 TIFFOpen(3TIFF), TIFFRGBAImage(3TIFF), TIFFReadRGBAStrip(3TIFF), TIFF‐
131 ReadRGBATile(3TIFF), libtiff(3TIFF)
132
133 Libtiff library home page: http://www.simplesystems.org/libtiff/
134
135
136
137libtiff October 13, 2006 TIFFReadRGBAImage(3TIFF)