Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

435 lines
21 KiB

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4. tiff.h
  5. Abstract:
  6. This file the data structures and constant
  7. definitions for the TIFF file format.
  8. See the TIFF specification Revision 6.0,
  9. dated 6-3-92, from Adobe for specific details.
  10. Environment:
  11. WIN32 User Mode
  12. Author:
  13. Wesley Witt (wesw) 17-Feb-1996
  14. --*/
  15. #ifndef _TIFF_
  16. #define _TIFF_
  17. #define TIFF_VERSION 42
  18. #define TIFF_BIGENDIAN 0x4d4d
  19. #define TIFF_LITTLEENDIAN 0x4949
  20. #pragma pack(1)
  21. typedef struct _TIFF_HEADER
  22. {
  23. WORD Identifier;
  24. WORD Version;
  25. DWORD IFDOffset;
  26. } TIFF_HEADER, *PTIFF_HEADER;
  27. //
  28. // TIFF Image File Directories are comprised of
  29. // a table of field descriptors of the form shown
  30. // below. The table is sorted in ascending order
  31. // by tag. The values associated with each entry
  32. // are disjoint and may appear anywhere in the file
  33. // (so long as they are placed on a word boundary).
  34. //
  35. // If the value is 4 bytes or less, then it is placed
  36. // in the offset field to save space. If the value
  37. // is less than 4 bytes, it is left-justified in the
  38. // offset field.
  39. //
  40. typedef struct _TIFF_TAG {
  41. WORD TagId;
  42. WORD DataType;
  43. DWORD DataCount;
  44. DWORD DataOffset;
  45. } TIFF_TAG;
  46. typedef TIFF_TAG UNALIGNED *PTIFF_TAG;
  47. typedef struct TIFF_IFD {
  48. WORD wEntries;
  49. TIFF_TAG ifdEntries[1];
  50. } TIFF_IFD;
  51. typedef TIFF_IFD UNALIGNED *PTIFF_IFD;
  52. #pragma pack()
  53. //
  54. // NB: In the comments below,
  55. // - items marked with a + are obsoleted by revision 5.0,
  56. // - items marked with a ! are introduced in revision 6.0.
  57. // - items marked with a % are introduced post revision 6.0.
  58. // - items marked with a $ are obsoleted by revision 6.0.
  59. //
  60. //
  61. // Tag data type information.
  62. //
  63. #define TIFF_NOTYPE 0 // placeholder
  64. #define TIFF_BYTE 1 // 8-bit unsigned integer
  65. #define TIFF_ASCII 2 // 8-bit bytes w/ last byte null
  66. #define TIFF_SHORT 3 // 16-bit unsigned integer
  67. #define TIFF_LONG 4 // 32-bit unsigned integer
  68. #define TIFF_RATIONAL 5 // 64-bit unsigned fraction
  69. #define TIFF_SBYTE 6 // !8-bit signed integer
  70. #define TIFF_UNDEFINED 7 // !8-bit untyped data
  71. #define TIFF_SSHORT 8 // !16-bit signed integer
  72. #define TIFF_SLONG 9 // !32-bit signed integer
  73. #define TIFF_SRATIONAL 10 // !64-bit signed fraction
  74. #define TIFF_FLOAT 11 // !32-bit IEEE floating point
  75. #define TIFF_DOUBLE 12 // !64-bit IEEE floating point
  76. //
  77. // TIFF Tag Definitions.
  78. //
  79. #define TIFFTAG_SUBFILETYPE 254 // subfile data descriptor
  80. #define FILETYPE_REDUCEDIMAGE 0x1 // reduced resolution version
  81. #define FILETYPE_PAGE 0x2 // one page of many
  82. #define FILETYPE_MASK 0x4 // transparency mask
  83. #define TIFFTAG_OSUBFILETYPE 255 // +kind of data in subfile
  84. #define OFILETYPE_IMAGE 1 // full resolution image data
  85. #define OFILETYPE_REDUCEDIMAGE 2 // reduced size image data
  86. #define OFILETYPE_PAGE 3 // one page of many
  87. #define TIFFTAG_IMAGEWIDTH 256 // image width in pixels
  88. #define TIFFTAG_IMAGELENGTH 257 // image height in pixels
  89. #define TIFFTAG_BITSPERSAMPLE 258 // bits per channel (sample)
  90. #define TIFFTAG_COMPRESSION 259 // data compression technique
  91. #define COMPRESSION_NONE 1 // dump mode
  92. #define COMPRESSION_CCITTRLE 2 // CCITT modified Huffman RLE
  93. #define COMPRESSION_CCITTFAX3 3 // CCITT Group 3 fax encoding
  94. #define COMPRESSION_CCITTFAX4 4 // CCITT Group 4 fax encoding
  95. #define COMPRESSION_LZW 5 // Lempel-Ziv & Welch
  96. #define COMPRESSION_OJPEG 6 // !6.0 JPEG
  97. #define COMPRESSION_JPEG 7 // %JPEG DCT compression
  98. #define COMPRESSION_NEXT 32766 // NeXT 2-bit RLE
  99. #define COMPRESSION_CCITTRLEW 32771 // #1 w/ word alignment
  100. #define COMPRESSION_PACKBITS 32773 // Macintosh RLE
  101. #define COMPRESSION_THUNDERSCAN 32809 // ThunderScan RLE
  102. //
  103. // compression codes 32908-32911 are reserved for Pixar
  104. //
  105. #define COMPRESSION_PIXARFILM 32908 // Pixar companded 10bit LZW
  106. #define COMPRESSION_DEFLATE 32946 // Deflate compression
  107. #define COMPRESSION_JBIG 34661 // ISO JBIG
  108. #define TIFFTAG_PHOTOMETRIC 262 // photometric interpretation
  109. #define PHOTOMETRIC_MINISWHITE 0 // min value is white
  110. #define PHOTOMETRIC_MINISBLACK 1 // min value is black
  111. #define PHOTOMETRIC_RGB 2 // RGB color model
  112. #define PHOTOMETRIC_PALETTE 3 // color map indexed
  113. #define PHOTOMETRIC_MASK 4 // $holdout mask
  114. #define PHOTOMETRIC_SEPARATED 5 // !color separations
  115. #define PHOTOMETRIC_YCBCR 6 // !CCIR 601
  116. #define PHOTOMETRIC_CIELAB 8 // !1976 CIE L*a*b*
  117. #define TIFFTAG_THRESHHOLDING 263 // +thresholding used on data
  118. #define THRESHHOLD_BILEVEL 1 // b&w art scan
  119. #define THRESHHOLD_HALFTONE 2 // or dithered scan
  120. #define THRESHHOLD_ERRORDIFFUSE 3 // usually floyd-steinberg
  121. #define TIFFTAG_CELLWIDTH 264 // +dithering matrix width
  122. #define TIFFTAG_CELLLENGTH 265 // +dithering matrix height
  123. #define TIFFTAG_FILLORDER 266 // data order within a byte
  124. #define FILLORDER_MSB2LSB 1 // most significant -> least
  125. #define FILLORDER_LSB2MSB 2 // least significant -> most
  126. #define TIFFTAG_DOCUMENTNAME 269 // name of doc. image is from
  127. #define TIFFTAG_IMAGEDESCRIPTION 270 // info about image
  128. #define TIFFTAG_MAKE 271 // scanner manufacturer name
  129. #define TIFFTAG_MODEL 272 // scanner model name/number
  130. #define TIFFTAG_STRIPOFFSETS 273 // offsets to data strips
  131. #define TIFFTAG_ORIENTATION 274 // +image orientation
  132. #define ORIENTATION_TOPLEFT 1 // row 0 top, col 0 lhs
  133. #define ORIENTATION_TOPRIGHT 2 // row 0 top, col 0 rhs
  134. #define ORIENTATION_BOTRIGHT 3 // row 0 bottom, col 0 rhs
  135. #define ORIENTATION_BOTLEFT 4 // row 0 bottom, col 0 lhs
  136. #define ORIENTATION_LEFTTOP 5 // row 0 lhs, col 0 top
  137. #define ORIENTATION_RIGHTTOP 6 // row 0 rhs, col 0 top
  138. #define ORIENTATION_RIGHTBOT 7 // row 0 rhs, col 0 bottom
  139. #define ORIENTATION_LEFTBOT 8 // row 0 lhs, col 0 bottom
  140. #define TIFFTAG_SAMPLESPERPIXEL 277 // samples per pixel
  141. #define TIFFTAG_ROWSPERSTRIP 278 // rows per strip of data
  142. #define TIFFTAG_STRIPBYTECOUNTS 279 // bytes counts for strips
  143. #define TIFFTAG_MINSAMPLEVALUE 280 // +minimum sample value
  144. #define TIFFTAG_MAXSAMPLEVALUE 281 // +maximum sample value
  145. #define TIFFTAG_XRESOLUTION 282 // pixels/resolution in x
  146. #define TIFFTAG_YRESOLUTION 283 // pixels/resolution in y
  147. #define TIFFTAG_PLANARCONFIG 284 // storage organization
  148. #define PLANARCONFIG_CONTIG 1 // single image plane
  149. #define PLANARCONFIG_SEPARATE 2 // separate planes of data
  150. #define TIFFTAG_PAGENAME 285 // page name image is from
  151. #define TIFFTAG_XPOSITION 286 // x page offset of image lhs
  152. #define TIFFTAG_YPOSITION 287 // y page offset of image lhs
  153. #define TIFFTAG_FREEOFFSETS 288 // +byte offset to free block
  154. #define TIFFTAG_FREEBYTECOUNTS 289 // +sizes of free blocks
  155. #define TIFFTAG_GRAYRESPONSEUNIT 290 // $gray scale curve accuracy
  156. #define GRAYRESPONSEUNIT_10S 1 // tenths of a unit
  157. #define GRAYRESPONSEUNIT_100S 2 // hundredths of a unit
  158. #define GRAYRESPONSEUNIT_1000S 3 // thousandths of a unit
  159. #define GRAYRESPONSEUNIT_10000S 4 // ten-thousandths of a unit
  160. #define GRAYRESPONSEUNIT_100000S 5 // hundred-thousandths
  161. #define TIFFTAG_GRAYRESPONSECURVE 291 // $gray scale response curve
  162. #define TIFFTAG_GROUP3OPTIONS 292 // 32 flag bits
  163. #define GROUP3OPT_2DENCODING 0x1 // 2-dimensional coding
  164. #define GROUP3OPT_UNCOMPRESSED 0x2 // data not compressed
  165. #define GROUP3OPT_FILLBITS 0x4 // fill to byte boundary
  166. #define TIFFTAG_GROUP4OPTIONS 293 // 32 flag bits
  167. #define GROUP4OPT_UNCOMPRESSED 0x2 // data not compressed
  168. #define TIFFTAG_RESOLUTIONUNIT 296 // units of resolutions
  169. #define RESUNIT_NONE 1 // no meaningful units
  170. #define RESUNIT_INCH 2 // english
  171. #define RESUNIT_CENTIMETER 3 // metric
  172. #define TIFFTAG_PAGENUMBER 297 // page numbers of multi-page
  173. #define TIFFTAG_COLORRESPONSEUNIT 300 // $color curve accuracy
  174. #define COLORRESPONSEUNIT_10S 1 // tenths of a unit
  175. #define COLORRESPONSEUNIT_100S 2 // hundredths of a unit
  176. #define COLORRESPONSEUNIT_1000S 3 // thousandths of a unit
  177. #define COLORRESPONSEUNIT_10000S 4 // ten-thousandths of a unit
  178. #define COLORRESPONSEUNIT_100000S 5 // hundred-thousandths
  179. #define TIFFTAG_TRANSFERFUNCTION 301 // !colorimetry info
  180. #define TIFFTAG_SOFTWARE 305 // name & release
  181. #define TIFFTAG_DATETIME 306 // creation date and time
  182. #define TIFFTAG_ARTIST 315 // creator of image
  183. #define TIFFTAG_HOSTCOMPUTER 316 // machine where created
  184. #define TIFFTAG_PREDICTOR 317 // prediction scheme w/ LZW
  185. #define TIFFTAG_WHITEPOINT 318 // image white point
  186. #define TIFFTAG_PRIMARYCHROMATICITIES 319 // !primary chromaticities
  187. #define TIFFTAG_COLORMAP 320 // RGB map for pallette image
  188. #define TIFFTAG_HALFTONEHINTS 321 // !highlight+shadow info
  189. #define TIFFTAG_TILEWIDTH 322 // !rows/data tile
  190. #define TIFFTAG_TILELENGTH 323 // !cols/data tile
  191. #define TIFFTAG_TILEOFFSETS 324 // !offsets to data tiles
  192. #define TIFFTAG_TILEBYTECOUNTS 325 // !byte counts for tiles
  193. #define TIFFTAG_BADFAXLINES 326 // lines w/ wrong pixel count
  194. #define TIFFTAG_CLEANFAXDATA 327 // regenerated line info
  195. #define CLEANFAXDATA_CLEAN 0 // no errors detected
  196. #define CLEANFAXDATA_REGENERATED 1 // receiver regenerated lines
  197. #define CLEANFAXDATA_UNCLEAN 2 // uncorrected errors exist
  198. #define TIFFTAG_CONSECUTIVEBADFAXLINES 328 // max consecutive bad lines
  199. #define TIFFTAG_SUBIFD 330 // subimage descriptors
  200. #define TIFFTAG_INKSET 332 // !inks in separated image
  201. #define INKSET_CMYK 1 // !cyan-magenta-yellow-black
  202. #define TIFFTAG_INKNAMES 333 // !ascii names of inks
  203. #define TIFFTAG_DOTRANGE 336 // !0% and 100% dot codes
  204. #define TIFFTAG_TARGETPRINTER 337 // !separation target
  205. #define TIFFTAG_EXTRASAMPLES 338 // !info about extra samples
  206. #define EXTRASAMPLE_UNSPECIFIED 0 // !unspecified data
  207. #define EXTRASAMPLE_ASSOCALPHA 1 // !associated alpha data
  208. #define EXTRASAMPLE_UNASSALPHA 2 // !unassociated alpha data
  209. #define TIFFTAG_SAMPLEFORMAT 339 // !data sample format
  210. #define SAMPLEFORMAT_UINT 1 // !unsigned integer data
  211. #define SAMPLEFORMAT_INT 2 // !signed integer data
  212. #define SAMPLEFORMAT_IEEEFP 3 // !IEEE floating point data
  213. #define SAMPLEFORMAT_VOID 4 // !untyped data
  214. #define TIFFTAG_SMINSAMPLEVALUE 340 // !variable MinSampleValue
  215. #define TIFFTAG_SMAXSAMPLEVALUE 341 // !variable MaxSampleValue
  216. #define TIFFTAG_JPEGTABLES 347 // %JPEG table stream
  217. //
  218. // Tags 512-521 are obsoleted by Technical Note #2
  219. // which specifies a revised JPEG-in-TIFF scheme.
  220. //
  221. #define TIFFTAG_JPEGPROC 512 // !JPEG processing algorithm
  222. #define JPEGPROC_BASELINE 1 // !baseline sequential
  223. #define JPEGPROC_LOSSLESS 14 // !Huffman coded lossless
  224. #define TIFFTAG_JPEGIFOFFSET 513 // !pointer to SOI marker
  225. #define TIFFTAG_JPEGIFBYTECOUNT 514 // !JFIF stream length
  226. #define TIFFTAG_JPEGRESTARTINTERVAL 515 // !restart interval length
  227. #define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 // !lossless proc predictor
  228. #define TIFFTAG_JPEGPOINTTRANSFORM 518 // !lossless point transform
  229. #define TIFFTAG_JPEGQTABLES 519 // !Q matrice offsets
  230. #define TIFFTAG_JPEGDCTABLES 520 // !DCT table offsets
  231. #define TIFFTAG_JPEGACTABLES 521 // !AC coefficient offsets
  232. #define TIFFTAG_YCBCRCOEFFICIENTS 529 // !RGB -> YCbCr transform
  233. #define TIFFTAG_YCBCRSUBSAMPLING 530 // !YCbCr subsampling factors
  234. #define TIFFTAG_YCBCRPOSITIONING 531 // !subsample positioning
  235. #define YCBCRPOSITION_CENTERED 1 // !as in PostScript Level 2
  236. #define YCBCRPOSITION_COSITED 2 // !as in CCIR 601-1
  237. #define TIFFTAG_REFERENCEBLACKWHITE 532 // !colorimetry info
  238. //
  239. // tags 32952-32956 are private tags registered to Island Graphics
  240. //
  241. #define TIFFTAG_REFPTS 32953 // image reference points
  242. #define TIFFTAG_REGIONTACKPOINT 32954 // region-xform tack point
  243. #define TIFFTAG_REGIONWARPCORNERS 32955 // warp quadrilateral
  244. #define TIFFTAG_REGIONAFFINE 32956 // affine transformation mat
  245. //
  246. // tags 32995-32999 are private tags registered to SGI
  247. //
  248. #define TIFFTAG_MATTEING 32995 // $use ExtraSamples
  249. #define TIFFTAG_DATATYPE 32996 // $use SampleFormat
  250. #define TIFFTAG_IMAGEDEPTH 32997 // z depth of image
  251. #define TIFFTAG_TILEDEPTH 32998 // z depth/data tile
  252. //
  253. // tags 33300-33309 are private tags registered to Pixar
  254. //
  255. // TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH
  256. // are set when an image has been cropped out of a larger image.
  257. // They reflect the size of the original uncropped image.
  258. // The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used
  259. // to determine the position of the smaller image in the larger one.
  260. //
  261. #define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 // full image size in x
  262. #define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 // full image size in y
  263. //
  264. // tag 33432 is listed in the 6.0 spec w/ unknown ownership
  265. //
  266. #define TIFFTAG_COPYRIGHT 33432 // copyright string
  267. //
  268. // tags 34232-34236 are private tags registered to Texas Instruments
  269. //
  270. #define TIFFTAG_FRAMECOUNT 34232 // Sequence Frame Count
  271. //
  272. // tag 34750 is a private tag registered to Pixel Magic
  273. //
  274. #define TIFFTAG_JBIGOPTIONS 34750 // JBIG options
  275. //
  276. // tags 34908-34914 are private tags registered to SGI
  277. //
  278. #define TIFFTAG_FAXRECVPARAMS 34908 // encoded Class 2 ses. parms
  279. #define TIFFTAG_FAXSUBADDRESS 34909 // received SubAddr string
  280. #define TIFFTAG_FAXRECVTIME 34910 // receive time (secs)
  281. //
  282. // tags 40001-40100 are private tags registered to ms
  283. //
  284. #define MS_TIFFTAG_START 40001
  285. #define TIFFTAG_CSID 40001
  286. #define TIFFTAG_TSID 40002
  287. #define TIFFTAG_PORT 40003
  288. #define TIFFTAG_ROUTING 40004
  289. #define TIFFTAG_CALLERID 40005
  290. #define TIFFTAG_RECIP_NAME 40006
  291. #define TIFFTAG_RECIP_NUMBER 40007
  292. #define TIFFTAG_RECIP_COMPANY 40008
  293. #define TIFFTAG_RECIP_STREET 40009
  294. #define TIFFTAG_RECIP_CITY 40010
  295. #define TIFFTAG_RECIP_STATE 40011
  296. #define TIFFTAG_RECIP_ZIP 40012
  297. #define TIFFTAG_RECIP_COUNTRY 40013
  298. #define TIFFTAG_RECIP_TITLE 40014
  299. #define TIFFTAG_RECIP_DEPARTMENT 40015
  300. #define TIFFTAG_RECIP_OFFICE_LOCATION 40016
  301. #define TIFFTAG_RECIP_HOME_PHONE 40017
  302. #define TIFFTAG_RECIP_OFFICE_PHONE 40018
  303. #define TIFFTAG_RECIP_EMAIL 40020
  304. #define TIFFTAG_SENDER_NAME 40021
  305. #define TIFFTAG_SENDER_NUMBER 40022
  306. #define TIFFTAG_SENDER_COMPANY 40023
  307. #define TIFFTAG_SENDER_STREET 40024
  308. #define TIFFTAG_SENDER_CITY 40025
  309. #define TIFFTAG_SENDER_STATE 40026
  310. #define TIFFTAG_SENDER_ZIP 40027
  311. #define TIFFTAG_SENDER_COUNTRY 40028
  312. #define TIFFTAG_SENDER_TITLE 40029
  313. #define TIFFTAG_SENDER_DEPARTMENT 40030
  314. #define TIFFTAG_SENDER_OFFICE_LOCATION 40031
  315. #define TIFFTAG_SENDER_HOME_PHONE 40032
  316. #define TIFFTAG_SENDER_OFFICE_PHONE 40033
  317. #define TIFFTAG_SENDER_EMAIL 40035
  318. #define TIFFTAG_SENDER_BILLING 40036
  319. #define TIFFTAG_SENDER_USER_NAME 40037
  320. #define TIFFTAG_SENDER_TSID 40038
  321. #define TIFFTAG_DOCUMENT 40039
  322. #define TIFFTAG_SUBJECT 40040
  323. #define TIFFTAG_RETRIES 40041
  324. #define TIFFTAG_PRIORITY 40042
  325. #define TIFFTAG_BROADCAST_ID 40043
  326. #define TIFFTAG_FAX_SUBMISSION_TIME 40044
  327. #define TIFFTAG_FAX_SCHEDULED_TIME 40045
  328. #define TIFFTAG_PAGES 40046
  329. #define TIFFTAG_TYPE 40047
  330. #define TIFFTAG_STATUS 40048
  331. #define TIFFTAG_EXTENDED_STATUS 40049
  332. #define TIFFTAG_EXTENDED_STATUS_TEXT 40050
  333. #define TIFFTAG_FAX_START_TIME 40051
  334. #define TIFFTAG_FAX_END_TIME 40052
  335. #define TIFFTAG_FAX_VERSION 40053
  336. #define MS_TIFFTAG_END 40053
  337. #define MAX_MS_TIFFTAGS MS_TIFFTAG_END - MS_TIFFTAG_START +1
  338. //
  339. // TIFF tags defined in W2K fax
  340. //
  341. #define TIFFTAG_W2K_RECIP_NAME 40001
  342. #define TIFFTAG_W2K_RECIP_NUMBER 40002
  343. #define TIFFTAG_W2K_SENDER_NAME 40003
  344. #define TIFFTAG_W2K_ROUTING 40004
  345. #define TIFFTAG_W2K_CALLERID 40005
  346. #define TIFFTAG_W2K_TSID 40006
  347. #define TIFFTAG_W2K_CSID 40007
  348. #define TIFFTAG_W2K_FAX_TIME 40008
  349. //
  350. // The following TIFF tags are used by the Shell group (contact: DavidShi)
  351. // They are added here so we don't collide with their tags in the future
  352. //
  353. #define PropertyTagUnicodeDescription 40091
  354. #define PropertyTagUnicodeComment 40092
  355. #define PropertyTagUnicodeArtist 40093
  356. #define PropertyTagUnicodeKeywords 40094
  357. #define PropertyTagUnicodeSubject 40095
  358. //
  359. // The following are ``pseudo tags'' that can be
  360. // used to control codec-specific functionality.
  361. // These tags are not written to file. Note that
  362. // these values start at 0xffff+1 so that they'll
  363. // never collide with Aldus-assigned tags.
  364. //
  365. // If you want your private pseudo tags ``registered''
  366. // (i.e. added to this file), send mail to [email protected]
  367. // with the appropriate C definitions to add.
  368. //
  369. #define TIFFTAG_FAXMODE 65536 // Group 3/4 format control
  370. #define FAXMODE_CLASSIC 0x0000 // default, include RTC
  371. #define FAXMODE_NORTC 0x0001 // no RTC at end of data
  372. #define FAXMODE_NOEOL 0x0002 // no EOL code at end of row
  373. #define FAXMODE_BYTEALIGN 0x0004 // byte align row
  374. #define FAXMODE_WORDALIGN 0x0008 // word align row
  375. #define FAXMODE_CLASSF FAXMODE_NORTC // TIFF Class F
  376. #define TIFFTAG_JPEGQUALITY 65537 // Compression quality level
  377. //
  378. // Note: quality level is on the IJG 0-100 scale. Default value is 75
  379. //
  380. #define TIFFTAG_JPEGCOLORMODE 65538 // Auto RGB<=>YCbCr convert?
  381. #define JPEGCOLORMODE_RAW 0x0000 // no conversion (default)
  382. #define JPEGCOLORMODE_RGB 0x0001 // do auto conversion
  383. #define TIFFTAG_JPEGTABLESMODE 65539 // What to put in JPEGTables
  384. #define JPEGTABLESMODE_QUANT 0x0001 // include quantization tbls
  385. #define JPEGTABLESMODE_HUFF 0x0002 // include Huffman tbls
  386. //
  387. // Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF
  388. //
  389. #define TIFFTAG_FAXFILLFUNC 65540 // G3/G4 fill function
  390. #define TIFFTAG_PIXARLOGDATAFMT 65549 // PixarLogCodec I/O data sz
  391. #define PIXARLOGDATAFMT_8BIT 0 // regular u_char samples
  392. #define PIXARLOGDATAFMT_8BITABGR 1 // ABGR-order u_chars
  393. #define PIXARLOGDATAFMT_10BITLOG 2 // 10-bit log-encoded (raw)
  394. #define PIXARLOGDATAFMT_12BITPICIO 3 // as per PICIO (1.0==2048)
  395. #define PIXARLOGDATAFMT_16BIT 4 // signed short samples
  396. #define PIXARLOGDATAFMT_FLOAT 5 // IEEE float samples
  397. #endif