Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
tif_print.c
Go to the documentation of this file.
1 /* $Id: tif_print.c,v 1.35 2006/03/13 07:53:28 dron Exp $ */
2 
3 /*
4  * Copyright (c) 1988-1997 Sam Leffler
5  * Copyright (c) 1991-1997 Silicon Graphics, Inc.
6  *
7  * Permission to use, copy, modify, distribute, and sell this software and
8  * its documentation for any purpose is hereby granted without fee, provided
9  * that (i) the above copyright notices and this permission notice appear in
10  * all copies of the software and related documentation, and (ii) the names of
11  * Sam Leffler and Silicon Graphics may not be used in any advertising or
12  * publicity relating to the software without the specific, prior written
13  * permission of Sam Leffler and Silicon Graphics.
14  *
15  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
16  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
17  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
18  *
19  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
20  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
21  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
22  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24  * OF THIS SOFTWARE.
25  */
26 
27 /*
28  * TIFF Library.
29  *
30  * Directory Printing Support
31  */
32 #include "tiffiop.h"
33 #include <stdio.h>
34 
35 #include <ctype.h>
36 
37 static const char *photoNames[] = {
38  "min-is-white", /* PHOTOMETRIC_MINISWHITE */
39  "min-is-black", /* PHOTOMETRIC_MINISBLACK */
40  "RGB color", /* PHOTOMETRIC_RGB */
41  "palette color (RGB from colormap)", /* PHOTOMETRIC_PALETTE */
42  "transparency mask", /* PHOTOMETRIC_MASK */
43  "separated", /* PHOTOMETRIC_SEPARATED */
44  "YCbCr", /* PHOTOMETRIC_YCBCR */
45  "7 (0x7)",
46  "CIE L*a*b*", /* PHOTOMETRIC_CIELAB */
47 };
48 #define NPHOTONAMES (sizeof (photoNames) / sizeof (photoNames[0]))
49 
50 static const char *orientNames[] = {
51  "0 (0x0)",
52  "row 0 top, col 0 lhs", /* ORIENTATION_TOPLEFT */
53  "row 0 top, col 0 rhs", /* ORIENTATION_TOPRIGHT */
54  "row 0 bottom, col 0 rhs", /* ORIENTATION_BOTRIGHT */
55  "row 0 bottom, col 0 lhs", /* ORIENTATION_BOTLEFT */
56  "row 0 lhs, col 0 top", /* ORIENTATION_LEFTTOP */
57  "row 0 rhs, col 0 top", /* ORIENTATION_RIGHTTOP */
58  "row 0 rhs, col 0 bottom", /* ORIENTATION_RIGHTBOT */
59  "row 0 lhs, col 0 bottom", /* ORIENTATION_LEFTBOT */
60 };
61 #define NORIENTNAMES (sizeof (orientNames) / sizeof (orientNames[0]))
62 
63 static void
64 _TIFFPrintField(FILE* fd, const TIFFFieldInfo *fip,
65  uint32 value_count, void *raw_data)
66 {
67  uint32 j;
68 
69  fprintf(fd, " %s: ", fip->field_name);
70 
71  for(j = 0; j < value_count; j++) {
72  if(fip->field_type == TIFF_BYTE)
73  fprintf(fd, "%u", ((uint8 *) raw_data)[j]);
74  else if(fip->field_type == TIFF_UNDEFINED)
75  fprintf(fd, "0x%x",
76  (unsigned int) ((unsigned char *) raw_data)[j]);
77  else if(fip->field_type == TIFF_SBYTE)
78  fprintf(fd, "%d", ((int8 *) raw_data)[j]);
79  else if(fip->field_type == TIFF_SHORT)
80  fprintf(fd, "%u", ((uint16 *) raw_data)[j]);
81  else if(fip->field_type == TIFF_SSHORT)
82  fprintf(fd, "%d", ((int16 *) raw_data)[j]);
83  else if(fip->field_type == TIFF_LONG)
84  fprintf(fd, "%lu",
85  (unsigned long)((uint32 *) raw_data)[j]);
86  else if(fip->field_type == TIFF_SLONG)
87  fprintf(fd, "%ld", (long)((int32 *) raw_data)[j]);
88  else if(fip->field_type == TIFF_RATIONAL
89  || fip->field_type == TIFF_SRATIONAL
90  || fip->field_type == TIFF_FLOAT)
91  fprintf(fd, "%f", ((float *) raw_data)[j]);
92  else if(fip->field_type == TIFF_IFD)
93  fprintf(fd, "0x%ulx", ((uint32 *) raw_data)[j]);
94  else if(fip->field_type == TIFF_ASCII) {
95  fprintf(fd, "%s", (char *) raw_data);
96  break;
97  }
98  else if(fip->field_type == TIFF_DOUBLE)
99  fprintf(fd, "%f", ((double *) raw_data)[j]);
100  else if(fip->field_type == TIFF_FLOAT)
101  fprintf(fd, "%f", ((float *)raw_data)[j]);
102  else {
103  fprintf(fd, "<unsupported data type in TIFFPrint>");
104  break;
105  }
106 
107  if(j < value_count - 1)
108  fprintf(fd, ",");
109  }
110 
111  fprintf(fd, "\n");
112 }
113 
114 static int
115 _TIFFPrettyPrintField(TIFF* tif, FILE* fd, ttag_t tag,
116  uint32 value_count, void *raw_data)
117 {
118  TIFFDirectory *td = &tif->tif_dir;
119 
120  switch (tag)
121  {
122  case TIFFTAG_INKSET:
123  fprintf(fd, " Ink Set: ");
124  switch (*((uint16*)raw_data)) {
125  case INKSET_CMYK:
126  fprintf(fd, "CMYK\n");
127  break;
128  default:
129  fprintf(fd, "%u (0x%x)\n",
130  *((uint16*)raw_data),
131  *((uint16*)raw_data));
132  break;
133  }
134  return 1;
135  case TIFFTAG_DOTRANGE:
136  fprintf(fd, " Dot Range: %u-%u\n",
137  ((uint16*)raw_data)[0], ((uint16*)raw_data)[1]);
138  return 1;
139  case TIFFTAG_WHITEPOINT:
140  fprintf(fd, " White Point: %g-%g\n",
141  ((float *)raw_data)[0], ((float *)raw_data)[1]); return 1;
143  {
144  uint16 i;
145 
146  fprintf(fd, " Reference Black/White:\n");
147  for (i = 0; i < td->td_samplesperpixel; i++)
148  fprintf(fd, " %2d: %5g %5g\n", i,
149  ((float *)raw_data)[2*i+0],
150  ((float *)raw_data)[2*i+1]);
151  return 1;
152  }
153  case TIFFTAG_XMLPACKET:
154  {
155  uint32 i;
156 
157  fprintf(fd, " XMLPacket (XMP Metadata):\n" );
158  for(i = 0; i < value_count; i++)
159  fputc(((char *)raw_data)[i], fd);
160  fprintf( fd, "\n" );
161  return 1;
162  }
164  /*
165  * XXX: for some weird reason RichTIFFIPTC tag
166  * defined as array of LONG values.
167  */
168  fprintf(fd,
169  " RichTIFFIPTC Data: <present>, %lu bytes\n",
170  (unsigned long) value_count * 4);
171  return 1;
172  case TIFFTAG_PHOTOSHOP:
173  fprintf(fd, " Photoshop Data: <present>, %lu bytes\n",
174  (unsigned long) value_count);
175  return 1;
176  case TIFFTAG_ICCPROFILE:
177  fprintf(fd, " ICC Profile: <present>, %lu bytes\n",
178  (unsigned long) value_count);
179  return 1;
180  case TIFFTAG_STONITS:
181  fprintf(fd,
182  " Sample to Nits conversion factor: %.4e\n",
183  *((double*)raw_data));
184  return 1;
185  }
186 
187  return 0;
188 }
189 
190 /*
191  * Print the contents of the current directory
192  * to the specified stdio file stream.
193  */
194 void
195 TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags)
196 {
197  TIFFDirectory *td = &tif->tif_dir;
198  char *sep;
199  uint16 i;
200  long l, n;
201 
202  fprintf(fd, "TIFF Directory at offset 0x%lx (%lu)\n",
203  (unsigned long)tif->tif_diroff, (unsigned long)tif->tif_diroff);
204  if (TIFFFieldSet(tif,FIELD_SUBFILETYPE)) {
205  fprintf(fd, " Subfile Type:");
206  sep = " ";
208  fprintf(fd, "%sreduced-resolution image", sep);
209  sep = "/";
210  }
211  if (td->td_subfiletype & FILETYPE_PAGE) {
212  fprintf(fd, "%smulti-page document", sep);
213  sep = "/";
214  }
215  if (td->td_subfiletype & FILETYPE_MASK)
216  fprintf(fd, "%stransparency mask", sep);
217  fprintf(fd, " (%lu = 0x%lx)\n",
218  (long) td->td_subfiletype, (long) td->td_subfiletype);
219  }
221  fprintf(fd, " Image Width: %lu Image Length: %lu",
222  (unsigned long) td->td_imagewidth, (unsigned long) td->td_imagelength);
224  fprintf(fd, " Image Depth: %lu",
225  (unsigned long) td->td_imagedepth);
226  fprintf(fd, "\n");
227  }
229  fprintf(fd, " Tile Width: %lu Tile Length: %lu",
230  (unsigned long) td->td_tilewidth, (unsigned long) td->td_tilelength);
231  if (TIFFFieldSet(tif,FIELD_TILEDEPTH))
232  fprintf(fd, " Tile Depth: %lu",
233  (unsigned long) td->td_tiledepth);
234  fprintf(fd, "\n");
235  }
236  if (TIFFFieldSet(tif,FIELD_RESOLUTION)) {
237  fprintf(fd, " Resolution: %g, %g",
238  td->td_xresolution, td->td_yresolution);
240  switch (td->td_resolutionunit) {
241  case RESUNIT_NONE:
242  fprintf(fd, " (unitless)");
243  break;
244  case RESUNIT_INCH:
245  fprintf(fd, " pixels/inch");
246  break;
247  case RESUNIT_CENTIMETER:
248  fprintf(fd, " pixels/cm");
249  break;
250  default:
251  fprintf(fd, " (unit %u = 0x%x)",
252  td->td_resolutionunit,
253  td->td_resolutionunit);
254  break;
255  }
256  }
257  fprintf(fd, "\n");
258  }
259  if (TIFFFieldSet(tif,FIELD_POSITION))
260  fprintf(fd, " Position: %g, %g\n",
261  td->td_xposition, td->td_yposition);
263  fprintf(fd, " Bits/Sample: %u\n", td->td_bitspersample);
264  if (TIFFFieldSet(tif,FIELD_SAMPLEFORMAT)) {
265  fprintf(fd, " Sample Format: ");
266  switch (td->td_sampleformat) {
267  case SAMPLEFORMAT_VOID:
268  fprintf(fd, "void\n");
269  break;
270  case SAMPLEFORMAT_INT:
271  fprintf(fd, "signed integer\n");
272  break;
273  case SAMPLEFORMAT_UINT:
274  fprintf(fd, "unsigned integer\n");
275  break;
276  case SAMPLEFORMAT_IEEEFP:
277  fprintf(fd, "IEEE floating point\n");
278  break;
280  fprintf(fd, "complex signed integer\n");
281  break;
283  fprintf(fd, "complex IEEE floating point\n");
284  break;
285  default:
286  fprintf(fd, "%u (0x%x)\n",
288  break;
289  }
290  }
291  if (TIFFFieldSet(tif,FIELD_COMPRESSION)) {
292  const TIFFCodec* c = TIFFFindCODEC(td->td_compression);
293  fprintf(fd, " Compression Scheme: ");
294  if (c)
295  fprintf(fd, "%s\n", c->name);
296  else
297  fprintf(fd, "%u (0x%x)\n",
298  td->td_compression, td->td_compression);
299  }
300  if (TIFFFieldSet(tif,FIELD_PHOTOMETRIC)) {
301  fprintf(fd, " Photometric Interpretation: ");
302  if (td->td_photometric < NPHOTONAMES)
303  fprintf(fd, "%s\n", photoNames[td->td_photometric]);
304  else {
305  switch (td->td_photometric) {
306  case PHOTOMETRIC_LOGL:
307  fprintf(fd, "CIE Log2(L)\n");
308  break;
309  case PHOTOMETRIC_LOGLUV:
310  fprintf(fd, "CIE Log2(L) (u',v')\n");
311  break;
312  default:
313  fprintf(fd, "%u (0x%x)\n",
314  td->td_photometric, td->td_photometric);
315  break;
316  }
317  }
318  }
320  fprintf(fd, " Extra Samples: %u<", td->td_extrasamples);
321  sep = "";
322  for (i = 0; i < td->td_extrasamples; i++) {
323  switch (td->td_sampleinfo[i]) {
325  fprintf(fd, "%sunspecified", sep);
326  break;
328  fprintf(fd, "%sassoc-alpha", sep);
329  break;
331  fprintf(fd, "%sunassoc-alpha", sep);
332  break;
333  default:
334  fprintf(fd, "%s%u (0x%x)", sep,
335  td->td_sampleinfo[i], td->td_sampleinfo[i]);
336  break;
337  }
338  sep = ", ";
339  }
340  fprintf(fd, ">\n");
341  }
342  if (TIFFFieldSet(tif,FIELD_INKNAMES)) {
343  char* cp;
344  fprintf(fd, " Ink Names: ");
345  i = td->td_samplesperpixel;
346  sep = "";
347  for (cp = td->td_inknames; i > 0; cp = strchr(cp,'\0')+1, i--) {
348  fputs(sep, fd);
349  _TIFFprintAscii(fd, cp);
350  sep = ", ";
351  }
352  fputs("\n", fd);
353  }
355  fprintf(fd, " Thresholding: ");
356  switch (td->td_threshholding) {
357  case THRESHHOLD_BILEVEL:
358  fprintf(fd, "bilevel art scan\n");
359  break;
360  case THRESHHOLD_HALFTONE:
361  fprintf(fd, "halftone or dithered scan\n");
362  break;
364  fprintf(fd, "error diffused\n");
365  break;
366  default:
367  fprintf(fd, "%u (0x%x)\n",
369  break;
370  }
371  }
372  if (TIFFFieldSet(tif,FIELD_FILLORDER)) {
373  fprintf(fd, " FillOrder: ");
374  switch (td->td_fillorder) {
375  case FILLORDER_MSB2LSB:
376  fprintf(fd, "msb-to-lsb\n");
377  break;
378  case FILLORDER_LSB2MSB:
379  fprintf(fd, "lsb-to-msb\n");
380  break;
381  default:
382  fprintf(fd, "%u (0x%x)\n",
383  td->td_fillorder, td->td_fillorder);
384  break;
385  }
386  }
388  {
389  /*
390  * For hacky reasons (see tif_jpeg.c - JPEGFixupTestSubsampling),
391  * we need to fetch this rather than trust what is in our
392  * structures.
393  */
394  uint16 subsampling[2];
395 
397  subsampling + 0, subsampling + 1 );
398  fprintf(fd, " YCbCr Subsampling: %u, %u\n",
399  subsampling[0], subsampling[1] );
400  }
402  fprintf(fd, " YCbCr Positioning: ");
403  switch (td->td_ycbcrpositioning) {
405  fprintf(fd, "centered\n");
406  break;
408  fprintf(fd, "cosited\n");
409  break;
410  default:
411  fprintf(fd, "%u (0x%x)\n",
413  break;
414  }
415  }
417  fprintf(fd, " Halftone Hints: light %u dark %u\n",
418  td->td_halftonehints[0], td->td_halftonehints[1]);
419  if (TIFFFieldSet(tif,FIELD_ORIENTATION)) {
420  fprintf(fd, " Orientation: ");
421  if (td->td_orientation < NORIENTNAMES)
422  fprintf(fd, "%s\n", orientNames[td->td_orientation]);
423  else
424  fprintf(fd, "%u (0x%x)\n",
425  td->td_orientation, td->td_orientation);
426  }
428  fprintf(fd, " Samples/Pixel: %u\n", td->td_samplesperpixel);
429  if (TIFFFieldSet(tif,FIELD_ROWSPERSTRIP)) {
430  fprintf(fd, " Rows/Strip: ");
431  if (td->td_rowsperstrip == (uint32) -1)
432  fprintf(fd, "(infinite)\n");
433  else
434  fprintf(fd, "%lu\n", (unsigned long) td->td_rowsperstrip);
435  }
437  fprintf(fd, " Min Sample Value: %u\n", td->td_minsamplevalue);
439  fprintf(fd, " Max Sample Value: %u\n", td->td_maxsamplevalue);
441  fprintf(fd, " SMin Sample Value: %g\n",
442  td->td_sminsamplevalue);
444  fprintf(fd, " SMax Sample Value: %g\n",
445  td->td_smaxsamplevalue);
446  if (TIFFFieldSet(tif,FIELD_PLANARCONFIG)) {
447  fprintf(fd, " Planar Configuration: ");
448  switch (td->td_planarconfig) {
449  case PLANARCONFIG_CONTIG:
450  fprintf(fd, "single image plane\n");
451  break;
453  fprintf(fd, "separate image planes\n");
454  break;
455  default:
456  fprintf(fd, "%u (0x%x)\n",
458  break;
459  }
460  }
462  fprintf(fd, " Page Number: %u-%u\n",
463  td->td_pagenumber[0], td->td_pagenumber[1]);
464  if (TIFFFieldSet(tif,FIELD_COLORMAP)) {
465  fprintf(fd, " Color Map: ");
466  if (flags & TIFFPRINT_COLORMAP) {
467  fprintf(fd, "\n");
468  n = 1L<<td->td_bitspersample;
469  for (l = 0; l < n; l++)
470  fprintf(fd, " %5lu: %5u %5u %5u\n",
471  l,
472  td->td_colormap[0][l],
473  td->td_colormap[1][l],
474  td->td_colormap[2][l]);
475  } else
476  fprintf(fd, "(present)\n");
477  }
479  fprintf(fd, " Transfer Function: ");
480  if (flags & TIFFPRINT_CURVES) {
481  fprintf(fd, "\n");
482  n = 1L<<td->td_bitspersample;
483  for (l = 0; l < n; l++) {
484  fprintf(fd, " %2lu: %5u",
485  l, td->td_transferfunction[0][l]);
486  for (i = 1; i < td->td_samplesperpixel; i++)
487  fprintf(fd, " %5u",
488  td->td_transferfunction[i][l]);
489  fputc('\n', fd);
490  }
491  } else
492  fprintf(fd, "(present)\n");
493  }
494  if (TIFFFieldSet(tif, FIELD_SUBIFD)) {
495  fprintf(fd, " SubIFD Offsets:");
496  for (i = 0; i < td->td_nsubifd; i++)
497  fprintf(fd, " %5lu", (long) td->td_subifd[i]);
498  fputc('\n', fd);
499  }
500 
501  /*
502  ** Custom tag support.
503  */
504  {
505  int i;
506  short count;
507 
508  count = (short) TIFFGetTagListCount(tif);
509  for(i = 0; i < count; i++) {
510  ttag_t tag = TIFFGetTagListEntry(tif, i);
511  const TIFFFieldInfo *fip;
512  uint16 value_count;
513  int mem_alloc = 0;
514  void *raw_data;
515 
516  fip = TIFFFieldWithTag(tif, tag);
517  if(fip == NULL)
518  continue;
519 
520  if(fip->field_passcount) {
521  if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1)
522  continue;
523  } else {
524  if (fip->field_readcount == TIFF_VARIABLE
525  || fip->field_readcount == TIFF_VARIABLE2)
526  value_count = 1;
527  else if (fip->field_readcount == TIFF_SPP)
528  value_count = td->td_samplesperpixel;
529  else
530  value_count = fip->field_readcount;
531  if ((fip->field_type == TIFF_ASCII
532  || fip->field_readcount == TIFF_VARIABLE
534  || fip->field_readcount == TIFF_SPP
535  || value_count > 1)
536  && fip->field_tag != TIFFTAG_PAGENUMBER
539  && fip->field_tag != TIFFTAG_DOTRANGE) {
540  if(TIFFGetField(tif, tag, &raw_data) != 1)
541  continue;
542  } else if (fip->field_tag != TIFFTAG_PAGENUMBER
545  && fip->field_tag != TIFFTAG_DOTRANGE) {
546  raw_data = _TIFFmalloc(
548  * value_count);
549  mem_alloc = 1;
550  if(TIFFGetField(tif, tag, raw_data) != 1) {
551  _TIFFfree(raw_data);
552  continue;
553  }
554  } else {
555  /*
556  * XXX: Should be fixed and removed, see the
557  * notes related to TIFFTAG_PAGENUMBER,
558  * TIFFTAG_HALFTONEHINTS,
559  * TIFFTAG_YCBCRSUBSAMPLING and
560  * TIFFTAG_DOTRANGE tags in tif_dir.c. */
561  char *tmp;
562  raw_data = _TIFFmalloc(
564  * value_count);
565  tmp = raw_data;
566  mem_alloc = 1;
567  if(TIFFGetField(tif, tag, tmp,
568  tmp + _TIFFDataSize(fip->field_type)) != 1) {
569  _TIFFfree(raw_data);
570  continue;
571  }
572  }
573  }
574 
575  /*
576  * Catch the tags which needs to be specially handled and
577  * pretty print them. If tag not handled in
578  * _TIFFPrettyPrintField() fall down and print it as any other
579  * tag.
580  */
581  if (_TIFFPrettyPrintField(tif, fd, tag, value_count, raw_data)) {
582  if(mem_alloc)
583  _TIFFfree(raw_data);
584  continue;
585  }
586  else
587  _TIFFPrintField(fd, fip, value_count, raw_data);
588 
589  if(mem_alloc)
590  _TIFFfree(raw_data);
591  }
592  }
593 
594  if (tif->tif_tagmethods.printdir)
595  (*tif->tif_tagmethods.printdir)(tif, fd, flags);
596  if ((flags & TIFFPRINT_STRIPS) &&
598  tstrip_t s;
599 
600  fprintf(fd, " %lu %s:\n",
601  (long) td->td_nstrips,
602  isTiled(tif) ? "Tiles" : "Strips");
603  for (s = 0; s < td->td_nstrips; s++)
604  fprintf(fd, " %3lu: [%8lu, %8lu]\n",
605  (unsigned long) s,
606  (unsigned long) td->td_stripoffset[s],
607  (unsigned long) td->td_stripbytecount[s]);
608  }
609 }
610 
611 void
612 _TIFFprintAscii(FILE* fd, const char* cp)
613 {
614  for (; *cp != '\0'; cp++) {
615  const char* tp;
616 
617  if (isprint((int)*cp)) {
618  fputc(*cp, fd);
619  continue;
620  }
621  for (tp = "\tt\bb\rr\nn\vv"; *tp; tp++)
622  if (*tp++ == *cp)
623  break;
624  if (*tp)
625  fprintf(fd, "\\%c", *tp);
626  else
627  fprintf(fd, "\\%03o", *cp & 0xff);
628  }
629 }
630 
631 void
632 _TIFFprintAsciiTag(FILE* fd, const char* name, const char* value)
633 {
634  fprintf(fd, " %s: \"", name);
635  _TIFFprintAscii(fd, value);
636  fprintf(fd, "\"\n");
637 }
638 
639 /* vim: set ts=8 sts=8 sw=8 noet: */
uint16 td_pagenumber[2]
Definition: tif_dir.h:59
uint32 ttag_t
Definition: tiffio.h:61
TIFFTagMethods tif_tagmethods
Definition: tiffiop.h:183
uint16 td_threshholding
Definition: tif_dir.h:48
uint32 td_imagewidth
Definition: tif_dir.h:41
#define TIFF_VARIABLE
Definition: tiffio.h:295
uint32 td_imagedepth
Definition: tif_dir.h:41
void _TIFFprintAscii(FILE *fd, const char *cp)
Definition: tif_print.c:612
#define FIELD_MINSAMPLEVALUE
Definition: tif_dir.h:116
#define FIELD_RESOLUTION
Definition: tif_dir.h:103
uint16 td_bitspersample
Definition: tif_dir.h:44
#define THRESHHOLD_ERRORDIFFUSE
Definition: tiff.h:215
#define TIFFTAG_ICCPROFILE
Definition: tiff.h:416
uint16 td_nsubifd
Definition: tif_dir.h:69
#define FIELD_STRIPOFFSETS
Definition: tif_dir.h:122
#define THRESHHOLD_BILEVEL
Definition: tiff.h:213
#define TIFFPRINT_CURVES
Definition: tiffio.h:111
float td_xresolution
Definition: tif_dir.h:55
uint16 td_minsamplevalue
Definition: tif_dir.h:53
#define NULL
Definition: ftobjs.h:61
#define FIELD_IMAGEDIMENSIONS
Definition: tif_dir.h:101
#define FIELD_THRESHHOLDING
Definition: tif_dir.h:111
#define YCBCRPOSITION_COSITED
Definition: tiff.h:349
#define PHOTOMETRIC_LOGL
Definition: tiff.h:210
tstrip_t td_nstrips
Definition: tif_dir.h:65
uint32 * td_stripoffset
Definition: tif_dir.h:66
#define FILLORDER_LSB2MSB
Definition: tiff.h:220
unsigned char uint8
Definition: tiff.h:67
uint16 * td_transferfunction[3]
Definition: tif_dir.h:75
signed char int8
Definition: tiff.h:65
void TIFFPrintDirectory(TIFF *tif, FILE *fd, long flags)
Definition: tif_print.c:195
#define FIELD_HALFTONEHINTS
Definition: tif_dir.h:130
#define PHOTOMETRIC_LOGLUV
Definition: tiff.h:211
#define TIFFTAG_DOTRANGE
Definition: tiff.h:305
#define TIFFPRINT_COLORMAP
Definition: tiffio.h:112
uint32 td_subfiletype
Definition: tif_dir.h:43
#define TIFFTAG_YCBCRSUBSAMPLING
Definition: tiff.h:346
#define FIELD_RESOLUTIONUNIT
Definition: tif_dir.h:119
#define TIFFTAG_REFERENCEBLACKWHITE
Definition: tiff.h:350
float td_xposition
Definition: tif_dir.h:58
Definition: tiffiop.h:95
#define FIELD_YCBCRSUBSAMPLING
Definition: tif_dir.h:131
#define SAMPLEFORMAT_INT
Definition: tiff.h:313
#define FIELD_SMAXSAMPLEVALUE
Definition: tif_dir.h:127
#define RESUNIT_INCH
Definition: tiff.h:267
png_uint_32 i
Definition: png.h:2640
local void * mem_alloc(void *mem, unsigned count, unsigned size)
Definition: infcover.c:71
#define FIELD_SUBIFD
Definition: tif_dir.h:135
uint16 td_extrasamples
Definition: tif_dir.h:62
#define FIELD_TRANSFERFUNCTION
Definition: tif_dir.h:133
#define FIELD_FILLORDER
Definition: tif_dir.h:112
#define FIELD_MAXSAMPLEVALUE
Definition: tif_dir.h:117
char * name
Definition: tiffio.h:243
#define INKSET_CMYK
Definition: tiff.h:301
TIFFPrintMethod printdir
Definition: tiffio.h:332
#define FIELD_BITSPERSAMPLE
Definition: tif_dir.h:108
void _TIFFprintAsciiTag(FILE *fd, const char *name, const char *value)
Definition: tif_print.c:632
uint32 tstrip_t
Definition: tiffio.h:64
#define NPHOTONAMES
Definition: tif_print.c:48
uint16 td_orientation
Definition: tif_dir.h:50
#define YCBCRPOSITION_CENTERED
Definition: tiff.h:348
uint16 * td_sampleinfo
Definition: tif_dir.h:63
unsigned char field_passcount
Definition: tiffio.h:308
uint32 td_tilewidth
Definition: tif_dir.h:42
#define FIELD_PLANARCONFIG
Definition: tif_dir.h:118
uint32 td_tilelength
Definition: tif_dir.h:42
#define SAMPLEFORMAT_VOID
Definition: tiff.h:315
#define TIFFTAG_XMLPACKET
Definition: tiff.h:351
#define SAMPLEFORMAT_COMPLEXIEEEFP
Definition: tiff.h:317
unsigned short uint16
Definition: tiff.h:71
#define SAMPLEFORMAT_UINT
Definition: tiff.h:312
GLbitfield flags
uint16 * td_colormap[3]
Definition: tif_dir.h:60
#define RESUNIT_CENTIMETER
Definition: tiff.h:268
uint32 td_imagelength
Definition: tif_dir.h:41
#define SAMPLEFORMAT_IEEEFP
Definition: tiff.h:314
GLdouble n
uint32 * td_subifd
Definition: tif_dir.h:70
#define TIFFTAG_HALFTONEHINTS
Definition: tiff.h:288
uint32 td_rowsperstrip
Definition: tif_dir.h:52
const GLubyte * c
float td_yposition
Definition: tif_dir.h:58
uint16 td_maxsamplevalue
Definition: tif_dir.h:53
#define FIELD_PHOTOMETRIC
Definition: tif_dir.h:110
uint16 td_halftonehints[2]
Definition: tif_dir.h:61
uint16 td_planarconfig
Definition: tif_dir.h:57
#define NORIENTNAMES
Definition: tif_print.c:61
short field_readcount
Definition: tiffio.h:303
#define EXTRASAMPLE_UNASSALPHA
Definition: tiff.h:310
#define TIFFFieldSet(tif, field)
Definition: tif_dir.h:167
#define TIFFTAG_PAGENUMBER
Definition: tiff.h:269
#define FIELD_COMPRESSION
Definition: tif_dir.h:109
#define FIELD_SMINSAMPLEVALUE
Definition: tif_dir.h:126
#define FIELD_ROWSPERSTRIP
Definition: tif_dir.h:115
ttag_t TIFFGetTagListEntry(TIFF *tif, int tag_index)
Definition: tif_extension.c:44
GLsizei const GLfloat * value
double td_smaxsamplevalue
Definition: tif_dir.h:54
#define FIELD_INKNAMES
Definition: tif_dir.h:134
#define TIFFTAG_WHITEPOINT
Definition: tiff.h:285
const TIFFCodec * TIFFFindCODEC(uint16 scheme)
Definition: tif_compress.c:177
#define FIELD_ORIENTATION
Definition: tif_dir.h:113
#define TIFFTAG_INKSET
Definition: tiff.h:300
#define PLANARCONFIG_SEPARATE
Definition: tiff.h:244
#define FILETYPE_REDUCEDIMAGE
Definition: tiff.h:158
#define FIELD_IMAGEDEPTH
Definition: tif_dir.h:128
#define isTiled(tif)
Definition: tiffiop.h:189
GLuint const GLchar * name
#define FILETYPE_PAGE
Definition: tiff.h:159
unsigned long uint32
Definition: md5.h:41
uint16 td_samplesperpixel
Definition: tif_dir.h:51
#define FIELD_YCBCRPOSITIONING
Definition: tif_dir.h:132
float td_yresolution
Definition: tif_dir.h:55
int _TIFFDataSize(TIFFDataType type)
Definition: tif_dirinfo.c:655
#define FIELD_EXTRASAMPLES
Definition: tif_dir.h:124
#define TIFF_VARIABLE2
Definition: tiffio.h:297
char * td_inknames
Definition: tif_dir.h:78
#define TIFFTAG_STONITS
Definition: tiff.h:426
double td_sminsamplevalue
Definition: tif_dir.h:54
short int16
Definition: tiff.h:69
uint32 td_tiledepth
Definition: tif_dir.h:42
#define TIFF_SPP
Definition: tiffio.h:296
uint16 td_ycbcrpositioning
Definition: tif_dir.h:73
int TIFFGetTagListCount(TIFF *tif)
Definition: tif_extension.c:36
#define FIELD_POSITION
Definition: tif_dir.h:104
TIFFDirectory tif_dir
Definition: tiffiop.h:122
#define EXTRASAMPLE_UNSPECIFIED
Definition: tiff.h:308
#define FIELD_PAGENUMBER
Definition: tif_dir.h:120
#define FIELD_TILEDEPTH
Definition: tif_dir.h:129
const TIFFFieldInfo * TIFFFieldWithTag(TIFF *, ttag_t)
#define FIELD_TILEDIMENSIONS
Definition: tif_dir.h:102
ttag_t field_tag
Definition: tiffio.h:302
GLdouble s
uint16 td_compression
Definition: tif_dir.h:46
#define TIFFTAG_RICHTIFFIPTC
Definition: tiff.h:389
#define SAMPLEFORMAT_COMPLEXINT
Definition: tiff.h:316
#define FILETYPE_MASK
Definition: tiff.h:160
void * _TIFFmalloc(tsize_t s)
Definition: tif_acorn.c:461
#define FIELD_COLORMAP
Definition: tif_dir.h:123
GLuint GLuint GLsizei count
#define FIELD_SAMPLESPERPIXEL
Definition: tif_dir.h:114
char * field_name
Definition: tiffio.h:309
uint16 td_sampleformat
Definition: tif_dir.h:45
int TIFFGetField(TIFF *tif, ttag_t tag,...)
Definition: tif_dir.c:925
TIFFDataType field_type
Definition: tiffio.h:305
#define RESUNIT_NONE
Definition: tiff.h:266
uint16 td_resolutionunit
Definition: tif_dir.h:56
void _TIFFfree(tdata_t p)
Definition: tif_acorn.c:467
Definition: tiff.h:151
#define TIFFPRINT_STRIPS
Definition: tiffio.h:110
#define EXTRASAMPLE_ASSOCALPHA
Definition: tiff.h:309
#define FIELD_SAMPLEFORMAT
Definition: tif_dir.h:125
#define THRESHHOLD_HALFTONE
Definition: tiff.h:214
#define FILLORDER_MSB2LSB
Definition: tiff.h:219
#define TIFFTAG_PHOTOSHOP
Definition: tiff.h:412
#define PLANARCONFIG_CONTIG
Definition: tiff.h:243
#define FIELD_SUBFILETYPE
Definition: tif_dir.h:107
toff_t tif_diroff
Definition: tiffiop.h:117
uint16 td_photometric
Definition: tif_dir.h:47
uint16 td_fillorder
Definition: tif_dir.h:49
uint32 * td_stripbytecount
Definition: tif_dir.h:67