00001
00002 #ifndef __JBXLPP_TIFF_TOOL_H_
00003 #define __JBXLPP_TIFF_TOOL_H_
00004
00005
00018
00019
00020
00021 #include "xtools.h"
00022 #include "gdata.h"
00023 #include "Gdata.h"
00024
00025
00026 typedef struct {
00027 uWord tag;
00028 sWord type;
00029 uDWord count;
00030 uDWord value;
00031 void* ex_value;
00032 } TIFF_ifd;
00033
00034
00035 typedef struct {
00036 int nn;
00037 TIFF_ifd* ifd;
00038 unsigned char* img;
00039 } TIFFImage;
00040
00041
00042 extern int TIFF_Swap_Flag;
00043
00044
00045 #define MAX_IFD_DEM_NUM 20
00046
00047 #define TIFF_TYPE_BYTE 1
00048 #define TIFF_TYPE_ASCII 2
00049 #define TIFF_TYPE_SOHRT 3
00050 #define TIFF_TYPE_LONG 4
00051 #define TIFF_TYPE_RATIONAL 5
00052 #define TIFF_TYPE_SBYTE 6
00053 #define TIFF_TYPE_UNDEFINED 7
00054 #define TIFF_TYPE_SSHORT 8
00055 #define TIFF_TYPE_SLONG 9
00056 #define TIFF_TYPE_SRATIONAL 10
00057 #define TIFF_TYPE_FLOAT 11
00058 #define TIFF_TYPE_DOUBLE 12
00059
00060 #define TIFF_TAG_WIDTH 0x0100 // 256
00061 #define TIFF_TAG_HEIGHT 0x0101 // 257
00062 #define TIFF_TAG_DEPTH 0x0102 // 258
00063 #define TIFF_TAG_COMP 0x0103 // 259
00064 #define TIFF_TAG_COLOR 0x0106 // 262
00065 #define TIFF_TAG_STRIP 0x0111 // 273
00066 #define TIFF_TAG_STRIP_RAW 0x0116 // 278
00067 #define TIFF_TAG_STRIP_CNT 0x0117 // 279
00068 #define TIFF_TAG_XRES 0x011a // 282
00069 #define TIFF_TAG_YRES 0x011b // 283
00070 #define TIFF_TAG_RES_UNIT 0x0128 // 296
00071 #define TIFF_TAG_COLORMAP 0x0140 // 320
00072
00073 #define TIFF_TAG_PIXEL 0x0115 // 277
00074 #define TIFF_TAG_PLANAR 0x011c // 284
00075 #define TIFF_TAG_SOFTWARE 0x0131 // 305
00076
00077 #define TIFF_TAG_TILE_WIDTH 0x0142 // 322
00078 #define TIFF_TAG_TILE_HEIGHT 0x0143 // 323
00079 #define TIFF_TAG_TILE_OFFSET 0x0144 // 324
00080 #define TIFF_TAG_TILE_BYTE 0x0145 // 325
00081 #define TIFF_TAG_SMPL_FORMAT 0x0153 // 339
00082
00083 #define TIFF_TAG_COPYRIGHT 0x8298 // 33432
00084
00085
00086 #define TIFF_TAG_GEO_PXL_SCALE 0x830e // 33550
00087 #define TIFF_TAG_GEO_TIEPOINT 0x8482 // 33922
00088 #define TIFF_TAG_GEO_TRANS 0x85d8 // 34264
00089 #define TIFF_TAG_GEO_DIR 0x87af // 34735
00090 #define TIFF_TAG_GEO_DOUBLE_PM 0x87b0 // 34736
00091 #define TIFF_TAG_GEO_ASCII_PM 0x87b1 // 34737
00092
00093
00095
00096 TIFF_ifd** read_tiff_file(const char* fname);
00097 TIFF_ifd* get_tiff_ifd(unsigned char* buf, int num);
00098 TIFF_ifd* find_tiff_ifd(TIFF_ifd* ifd, unsigned short tag);
00099 void proc_tiff_ifd(TIFF_ifd* ifd, unsigned char* buf);
00100
00101 void free_TIFF_ifd(TIFF_ifd* ifd);
00102 void free_TIFF_ifd_dem(TIFF_ifd** ptr_ifd);
00103
00104 void print_tiff_ifd(FILE* fp, TIFF_ifd* ifd, int max_values);
00105 void print_tiff_ifd_indiv(FILE* fp, TIFF_ifd* ifd, int max_values);
00106
00107 char* get_tiff_ascii_field(TIFF_ifd* ifd, int offset);
00108 unsigned int get_tiff_uint_field(TIFF_ifd* ifd, int offset);
00109 double get_tiff_double_field(TIFF_ifd* ifd, int offset);
00110
00111 int get_tiff_type_length(short type);
00112
00113
00114
00115 #endif
00116
00117
00118