]>
Commit | Line | Data |
---|---|---|
8414a40c VZ |
1 | typedef struct _TIFFImageIter TIFFImageIter; |
2 | ||
3 | /* The callback function is called for each "block" of image pixel data after | |
4 | it has been read from the file and decoded. This image pixel data is in the | |
5 | buffer pp, and this data represents the image pixels from (x,y) to | |
6 | (x+w,y+h). It is stored in pixel format, so each pixel contains | |
7 | img->samplesperpixel consecutive samples each containing img->bitspersample | |
8 | bits of data. The array pp is ordered in h consecutive rows of w+fromskew | |
9 | pixels each. */ | |
10 | typedef void (*ImageIterTileContigRoutine) | |
11 | (TIFFImageIter*, void *, uint32, uint32, uint32, uint32, int32, | |
12 | unsigned char*); | |
13 | #define DECLAREContigCallbackFunc(name) \ | |
14 | static void name(\ | |
15 | TIFFImageIter* img, \ | |
16 | void* user_data, \ | |
17 | uint32 x, uint32 y, \ | |
18 | uint32 w, uint32 h, \ | |
19 | int32 fromskew, \ | |
20 | u_char* pp \ | |
21 | ) | |
22 | ||
23 | typedef void (*ImageIterTileSeparateRoutine) | |
24 | (TIFFImageIter*, void *, uint32, uint32, uint32, uint32, int32, | |
25 | unsigned char*, unsigned char*, unsigned char*, unsigned char*); | |
26 | #define DECLARESepCallbackFunc(name) \ | |
27 | static void name(\ | |
28 | TIFFImageIter* img, \ | |
29 | void* user_data, \ | |
30 | uint32 x, uint32 y, \ | |
31 | uint32 w, uint32 h,\ | |
32 | int32 fromskew, \ | |
33 | u_char* r, u_char* g, u_char* b, u_char* a\ | |
34 | ) | |
35 | ||
36 | struct _TIFFImageIter { | |
37 | TIFF* tif; /* image handle */ | |
38 | int stoponerr; /* stop on read error */ | |
39 | int isContig; /* data is packed/separate */ | |
40 | int alpha; /* type of alpha data present */ | |
41 | uint32 width; /* image width */ | |
42 | uint32 height; /* image height */ | |
43 | uint16 bitspersample; /* image bits/sample */ | |
44 | uint16 samplesperpixel; /* image samples/pixel */ | |
45 | uint16 orientation; /* image orientation */ | |
46 | uint16 photometric; /* image photometric interp */ | |
47 | uint16* redcmap; /* colormap pallete */ | |
48 | uint16* greencmap; | |
49 | uint16* bluecmap; | |
50 | /* get image data routine */ | |
51 | int (*get)(TIFFImageIter*, void *udata, uint32, uint32); | |
52 | union { | |
53 | void (*any)(TIFFImageIter*); | |
54 | ImageIterTileContigRoutine contig; | |
55 | ImageIterTileSeparateRoutine separate; | |
56 | } callback; /* fn to exec for each block */ | |
57 | }; |