1 /* 2 * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 package javax.imageio.plugins.tiff; 26 27 import java.util.ArrayList; 28 import java.util.List; 29 30 /** 31 * A class representing the set of tags found in the baseline TIFF 32 * specification as well as some common additional tags. 33 * 34 * <p> The non-baseline tags included in this class are: 35 * <ul> 36 * <li> {@link #TAG_JPEG_TABLES JPEGTables} 37 * <li> {@link #TAG_ICC_PROFILE ICC Profile} 38 * </ul> 39 * 40 * <p> The non-baseline values of baseline tags included in this class are 41 * <ul> 42 * <li>{@link #TAG_COMPRESSION Compression} tag values: 43 * <ul> 44 * <li>{@link #COMPRESSION_JPEG JPEG-in-TIFF compression}</li> 45 * <li>{@link #COMPRESSION_ZLIB Zlib-in-TIFF compression}</li> 46 * <li>{@link #COMPRESSION_DEFLATE Deflate compression}</li> 47 * </ul> 48 * </li> 49 * <li>{@link #TAG_PHOTOMETRIC_INTERPRETATION PhotometricInterpretation} 50 * tag values: 51 * <ul> 52 * <li>{@link #PHOTOMETRIC_INTERPRETATION_ICCLAB ICCLAB 53 * photometric interpretation}</li> 54 * </ul> 55 * </li> 56 * </ul> 57 * 58 * @since 9 59 * @see <a href="https://www.itu.int/itudoc/itu-t/com16/tiff-fx/docs/tiff6.pdf"> TIFF 6.0 Specification</a> 60 */ 61 public final class BaselineTIFFTagSet extends TIFFTagSet { 62 63 private static BaselineTIFFTagSet theInstance = null; 64 65 // Tags from TIFF 6.0 specification 66 67 /** 68 * Constant specifying the "NewSubfileType" tag. 69 * 70 * @see #NEW_SUBFILE_TYPE_REDUCED_RESOLUTION 71 * @see #NEW_SUBFILE_TYPE_SINGLE_PAGE 72 * @see #NEW_SUBFILE_TYPE_TRANSPARENCY 73 */ 74 public static final int TAG_NEW_SUBFILE_TYPE = 254; 75 76 /** 77 * A mask to be used with the "NewSubfileType" tag. 78 * 79 * @see #TAG_NEW_SUBFILE_TYPE 80 */ 81 public static final int NEW_SUBFILE_TYPE_REDUCED_RESOLUTION = 1; 82 83 /** 84 * A mask to be used with the "NewSubfileType" tag. 85 * 86 * @see #TAG_NEW_SUBFILE_TYPE 87 */ 88 public static final int NEW_SUBFILE_TYPE_SINGLE_PAGE = 2; 89 90 /** 91 * A mask to be used with the "NewSubfileType" tag. 92 * 93 * @see #TAG_NEW_SUBFILE_TYPE 94 */ 95 public static final int NEW_SUBFILE_TYPE_TRANSPARENCY = 4; 96 97 /** 98 * Constant specifying the "SubfileType" tag. 99 * 100 * @see #SUBFILE_TYPE_FULL_RESOLUTION 101 * @see #SUBFILE_TYPE_REDUCED_RESOLUTION 102 * @see #SUBFILE_TYPE_SINGLE_PAGE 103 */ 104 public static final int TAG_SUBFILE_TYPE = 255; 105 106 /** 107 * A value to be used with the "SubfileType" tag. 108 * 109 * @see #TAG_SUBFILE_TYPE 110 */ 111 public static final int SUBFILE_TYPE_FULL_RESOLUTION = 1; 112 113 /** 114 * A value to be used with the "SubfileType" tag. 115 * 116 * @see #TAG_SUBFILE_TYPE 117 */ 118 public static final int SUBFILE_TYPE_REDUCED_RESOLUTION = 2; 119 120 /** 121 * A value to be used with the "SubfileType" tag. 122 * 123 * @see #TAG_SUBFILE_TYPE 124 */ 125 public static final int SUBFILE_TYPE_SINGLE_PAGE = 3; 126 127 /** 128 * Constant specifying the "ImageWidth" tag. 129 */ 130 public static final int TAG_IMAGE_WIDTH = 256; 131 132 /** 133 * Constant specifying the "ImageLength" tag. 134 */ 135 public static final int TAG_IMAGE_LENGTH = 257; 136 137 /** 138 * Constant specifying the "BitsPerSample" tag. 139 */ 140 public static final int TAG_BITS_PER_SAMPLE = 258; 141 142 /** 143 * Constant specifying the "Compression" tag. 144 * 145 * @see #COMPRESSION_NONE 146 * @see #COMPRESSION_CCITT_RLE 147 * @see #COMPRESSION_CCITT_T_4 148 * @see #COMPRESSION_CCITT_T_6 149 * @see #COMPRESSION_LZW 150 * @see #COMPRESSION_OLD_JPEG 151 * @see #COMPRESSION_JPEG 152 * @see #COMPRESSION_ZLIB 153 * @see #COMPRESSION_PACKBITS 154 * @see #COMPRESSION_DEFLATE 155 */ 156 public static final int TAG_COMPRESSION = 259; 157 158 /** 159 * A value to be used with the "Compression" tag. 160 * 161 * @see #TAG_COMPRESSION 162 */ 163 public static final int COMPRESSION_NONE = 1; 164 165 /** 166 * A value to be used with the "Compression" tag. 167 * 168 * @see #TAG_COMPRESSION 169 */ 170 public static final int COMPRESSION_CCITT_RLE = 2; 171 172 /** 173 * A value to be used with the "Compression" tag. 174 * 175 * @see #TAG_COMPRESSION 176 */ 177 public static final int COMPRESSION_CCITT_T_4 = 3; 178 179 /** 180 * A value to be used with the "Compression" tag. 181 * 182 * @see #TAG_COMPRESSION 183 */ 184 public static final int COMPRESSION_CCITT_T_6 = 4; 185 186 /** 187 * A value to be used with the "Compression" tag. 188 * 189 * @see #TAG_COMPRESSION 190 */ 191 public static final int COMPRESSION_LZW = 5; 192 193 /** 194 * A value to be used with the "Compression" tag. 195 * 196 * @see #TAG_COMPRESSION 197 */ 198 public static final int COMPRESSION_OLD_JPEG = 6; 199 200 /** 201 * A value to be used with the "Compression" tag. 202 * 203 * @see #TAG_COMPRESSION 204 */ 205 public static final int COMPRESSION_JPEG = 7; 206 207 /** 208 * A value to be used with the "Compression" tag. 209 * 210 * @see #TAG_COMPRESSION 211 */ 212 public static final int COMPRESSION_ZLIB = 8; 213 214 /** 215 * A value to be used with the "Compression" tag. 216 * 217 * @see #TAG_COMPRESSION 218 */ 219 public static final int COMPRESSION_PACKBITS = 32773; 220 221 /** 222 * A value to be used with the "Compression" tag. 223 * 224 * @see #TAG_COMPRESSION 225 * @see <a href="https://tools.ietf.org/html/rfc1951">DEFLATE specification</a> 226 */ 227 public static final int COMPRESSION_DEFLATE = 32946; 228 229 /** 230 * Constant specifying the "PhotometricInterpretation" tag. 231 * 232 * @see #PHOTOMETRIC_INTERPRETATION_WHITE_IS_ZERO 233 * @see #PHOTOMETRIC_INTERPRETATION_BLACK_IS_ZERO 234 * @see #PHOTOMETRIC_INTERPRETATION_RGB 235 * @see #PHOTOMETRIC_INTERPRETATION_PALETTE_COLOR 236 * @see #PHOTOMETRIC_INTERPRETATION_TRANSPARENCY_MASK 237 * @see #PHOTOMETRIC_INTERPRETATION_Y_CB_CR 238 * @see #PHOTOMETRIC_INTERPRETATION_CIELAB 239 * @see #PHOTOMETRIC_INTERPRETATION_ICCLAB 240 */ 241 public static final int TAG_PHOTOMETRIC_INTERPRETATION = 262; 242 243 /** 244 * A value to be used with the "PhotometricInterpretation" tag. 245 * 246 * @see #TAG_PHOTOMETRIC_INTERPRETATION 247 */ 248 public static final int PHOTOMETRIC_INTERPRETATION_WHITE_IS_ZERO = 0; 249 250 /** 251 * A value to be used with the "PhotometricInterpretation" tag. 252 * 253 * @see #TAG_PHOTOMETRIC_INTERPRETATION 254 */ 255 public static final int PHOTOMETRIC_INTERPRETATION_BLACK_IS_ZERO = 1; 256 257 /** 258 * A value to be used with the "PhotometricInterpretation" tag. 259 * 260 * @see #TAG_PHOTOMETRIC_INTERPRETATION 261 */ 262 public static final int PHOTOMETRIC_INTERPRETATION_RGB = 2; 263 264 /** 265 * A value to be used with the "PhotometricInterpretation" tag. 266 * 267 * @see #TAG_PHOTOMETRIC_INTERPRETATION 268 */ 269 public static final int PHOTOMETRIC_INTERPRETATION_PALETTE_COLOR = 3; 270 271 /** 272 * A value to be used with the "PhotometricInterpretation" tag. 273 * 274 * @see #TAG_PHOTOMETRIC_INTERPRETATION 275 */ 276 public static final int PHOTOMETRIC_INTERPRETATION_TRANSPARENCY_MASK = 4; 277 278 /** 279 * A value to be used with the "PhotometricInterpretation" tag. 280 * 281 * @see #TAG_PHOTOMETRIC_INTERPRETATION 282 */ 283 public static final int PHOTOMETRIC_INTERPRETATION_CMYK = 5; 284 285 /** 286 * A value to be used with the "PhotometricInterpretation" tag. 287 * 288 * @see #TAG_PHOTOMETRIC_INTERPRETATION 289 */ 290 public static final int PHOTOMETRIC_INTERPRETATION_Y_CB_CR = 6; 291 292 /** 293 * A value to be used with the "PhotometricInterpretation" tag. 294 * 295 * @see #TAG_PHOTOMETRIC_INTERPRETATION 296 */ 297 public static final int PHOTOMETRIC_INTERPRETATION_CIELAB = 8; 298 299 /** 300 * A value to be used with the "PhotometricInterpretation" tag. 301 * 302 * @see #TAG_PHOTOMETRIC_INTERPRETATION 303 */ 304 public static final int PHOTOMETRIC_INTERPRETATION_ICCLAB = 9; 305 306 /** 307 * Constant specifying the "Threshholding" tag. 308 * 309 * @see #THRESHHOLDING_NONE 310 * @see #THRESHHOLDING_ORDERED_DITHER 311 * @see #THRESHHOLDING_RANDOMIZED_DITHER 312 */ 313 public static final int TAG_THRESHHOLDING = 263; 314 315 /** 316 * A value to be used with the "Thresholding" tag. 317 * 318 * @see #TAG_THRESHHOLDING 319 */ 320 public static final int THRESHHOLDING_NONE = 1; 321 322 /** 323 * A value to be used with the "Thresholding" tag. 324 * 325 * @see #TAG_THRESHHOLDING 326 */ 327 public static final int THRESHHOLDING_ORDERED_DITHER = 2; 328 329 /** 330 * A value to be used with the "Thresholding" tag. 331 * 332 * @see #TAG_THRESHHOLDING 333 */ 334 public static final int THRESHHOLDING_RANDOMIZED_DITHER = 3; 335 336 /** 337 * Constant specifying the "Cell_Width" tag. 338 */ 339 public static final int TAG_CELL_WIDTH = 264; 340 341 /** 342 * Constant specifying the "cell_length" tag. 343 */ 344 public static final int TAG_CELL_LENGTH = 265; 345 346 /** 347 * Constant specifying the "fill_order" tag. 348 * 349 * @see #FILL_ORDER_LEFT_TO_RIGHT 350 * @see #FILL_ORDER_RIGHT_TO_LEFT 351 */ 352 public static final int TAG_FILL_ORDER = 266; 353 354 /** 355 * A value to be used with the "FillOrder" tag. 356 * 357 * @see #TAG_FILL_ORDER 358 */ 359 public static final int FILL_ORDER_LEFT_TO_RIGHT = 1; 360 361 /** 362 * A value to be used with the "FillOrder" tag. 363 * 364 * @see #TAG_FILL_ORDER 365 */ 366 public static final int FILL_ORDER_RIGHT_TO_LEFT = 2; 367 368 /** 369 * Constant specifying the "document_name" tag. 370 */ 371 public static final int TAG_DOCUMENT_NAME = 269; 372 373 /** 374 * Constant specifying the "Image_description" tag. 375 */ 376 public static final int TAG_IMAGE_DESCRIPTION = 270; 377 378 /** 379 * Constant specifying the "Make" tag. 380 */ 381 public static final int TAG_MAKE = 271; 382 383 /** 384 * Constant specifying the "Model" tag. 385 */ 386 public static final int TAG_MODEL = 272; 387 388 /** 389 * Constant specifying the "Strip_offsets" tag. 390 */ 391 public static final int TAG_STRIP_OFFSETS = 273; 392 393 /** 394 * Constant specifying the "Orientation" tag. 395 * 396 * @see #ORIENTATION_ROW_0_TOP_COLUMN_0_LEFT 397 * @see #ORIENTATION_ROW_0_TOP_COLUMN_0_RIGHT 398 * @see #ORIENTATION_ROW_0_BOTTOM_COLUMN_0_RIGHT 399 * @see #ORIENTATION_ROW_0_BOTTOM_COLUMN_0_LEFT 400 * @see #ORIENTATION_ROW_0_LEFT_COLUMN_0_TOP 401 * @see #ORIENTATION_ROW_0_RIGHT_COLUMN_0_TOP 402 * @see #ORIENTATION_ROW_0_RIGHT_COLUMN_0_BOTTOM 403 * @see #ORIENTATION_ROW_0_LEFT_COLUMN_0_BOTTOM 404 */ 405 public static final int TAG_ORIENTATION = 274; 406 407 /** 408 * A value to be used with the "Orientation" tag. 409 * 410 * @see #TAG_ORIENTATION 411 */ 412 public static final int ORIENTATION_ROW_0_TOP_COLUMN_0_LEFT = 1; 413 414 /** 415 * A value to be used with the "Orientation" tag. 416 * 417 * @see #TAG_ORIENTATION 418 */ 419 public static final int ORIENTATION_ROW_0_TOP_COLUMN_0_RIGHT = 2; 420 421 /** 422 * A value to be used with the "Orientation" tag. 423 * 424 * @see #TAG_ORIENTATION 425 */ 426 public static final int ORIENTATION_ROW_0_BOTTOM_COLUMN_0_RIGHT = 3; 427 428 /** 429 * A value to be used with the "Orientation" tag. 430 * 431 * @see #TAG_ORIENTATION 432 */ 433 public static final int ORIENTATION_ROW_0_BOTTOM_COLUMN_0_LEFT = 4; 434 435 /** 436 * A value to be used with the "Orientation" tag. 437 * 438 * @see #TAG_ORIENTATION 439 */ 440 public static final int ORIENTATION_ROW_0_LEFT_COLUMN_0_TOP = 5; 441 442 /** 443 * A value to be used with the "Orientation" tag. 444 * 445 * @see #TAG_ORIENTATION 446 */ 447 public static final int ORIENTATION_ROW_0_RIGHT_COLUMN_0_TOP = 6; 448 449 /** 450 * A value to be used with the "Orientation" tag. 451 * 452 * @see #TAG_ORIENTATION 453 */ 454 public static final int ORIENTATION_ROW_0_RIGHT_COLUMN_0_BOTTOM = 7; 455 456 /** 457 * A value to be used with the "Orientation" tag. 458 * 459 * @see #TAG_ORIENTATION 460 */ 461 public static final int ORIENTATION_ROW_0_LEFT_COLUMN_0_BOTTOM = 8; 462 463 /** 464 * Constant specifying the "Samples_per_pixel" tag. 465 */ 466 public static final int TAG_SAMPLES_PER_PIXEL = 277; 467 468 /** 469 * Constant specifying the "Rows_per_strip" tag. 470 */ 471 public static final int TAG_ROWS_PER_STRIP = 278; 472 473 /** 474 * Constant specifying the "Strip_byte_counts" tag. 475 */ 476 public static final int TAG_STRIP_BYTE_COUNTS = 279; 477 478 /** 479 * Constant specifying the "Min_sample_value" tag. 480 */ 481 public static final int TAG_MIN_SAMPLE_VALUE = 280; 482 483 /** 484 * Constant specifying the "Max_sample_value" tag. 485 */ 486 public static final int TAG_MAX_SAMPLE_VALUE = 281; 487 488 /** 489 * Constant specifying the "XResolution" tag. 490 */ 491 public static final int TAG_X_RESOLUTION = 282; 492 493 /** 494 * Constant specifying the "YResolution" tag. 495 */ 496 public static final int TAG_Y_RESOLUTION = 283; 497 498 /** 499 * Constant specifying the "PlanarConfiguration" tag. 500 * 501 * @see #PLANAR_CONFIGURATION_CHUNKY 502 * @see #PLANAR_CONFIGURATION_PLANAR 503 */ 504 public static final int TAG_PLANAR_CONFIGURATION = 284; 505 506 /** 507 * A value to be used with the "PlanarConfiguration" tag. 508 * 509 * @see #TAG_PLANAR_CONFIGURATION 510 */ 511 public static final int PLANAR_CONFIGURATION_CHUNKY = 1; 512 513 /** 514 * A value to be used with the "PlanarConfiguration" tag. 515 * 516 * @see #TAG_PLANAR_CONFIGURATION 517 */ 518 public static final int PLANAR_CONFIGURATION_PLANAR = 2; 519 520 /** 521 * Constant specifying the "PageName" tag. 522 */ 523 public static final int TAG_PAGE_NAME = 285; 524 525 /** 526 * Constant specifying the "XPosition" tag. 527 */ 528 public static final int TAG_X_POSITION = 286; 529 530 /** 531 * Constant specifying the "YPosition" tag. 532 */ 533 public static final int TAG_Y_POSITION = 287; 534 535 /** 536 * Constant specifying the "FreeOffsets" tag. 537 */ 538 public static final int TAG_FREE_OFFSETS = 288; 539 540 /** 541 * Constant specifying the "FreeByteCounts" tag. 542 */ 543 public static final int TAG_FREE_BYTE_COUNTS = 289; 544 545 /** 546 * Constant specifying the "GrayResponseUnit" tag. 547 * 548 * @see #GRAY_RESPONSE_UNIT_TENTHS 549 * @see #GRAY_RESPONSE_UNIT_HUNDREDTHS 550 * @see #GRAY_RESPONSE_UNIT_THOUSANDTHS 551 * @see #GRAY_RESPONSE_UNIT_TEN_THOUSANDTHS 552 * @see #GRAY_RESPONSE_UNIT_HUNDRED_THOUSANDTHS 553 */ 554 public static final int TAG_GRAY_RESPONSE_UNIT = 290; 555 556 /** 557 * A value to be used with the "GrayResponseUnit" tag. 558 * 559 * @see #TAG_GRAY_RESPONSE_UNIT 560 */ 561 public static final int GRAY_RESPONSE_UNIT_TENTHS = 1; 562 563 /** 564 * A value to be used with the "GrayResponseUnit" tag. 565 * 566 * @see #TAG_GRAY_RESPONSE_UNIT 567 */ 568 public static final int GRAY_RESPONSE_UNIT_HUNDREDTHS = 2; 569 570 /** 571 * A value to be used with the "GrayResponseUnit" tag. 572 * 573 * @see #TAG_GRAY_RESPONSE_UNIT 574 */ 575 public static final int GRAY_RESPONSE_UNIT_THOUSANDTHS = 3; 576 577 /** 578 * A value to be used with the "GrayResponseUnit" tag. 579 * 580 * @see #TAG_GRAY_RESPONSE_UNIT 581 */ 582 public static final int GRAY_RESPONSE_UNIT_TEN_THOUSANDTHS = 4; 583 584 /** 585 * A value to be used with the "GrayResponseUnit" tag. 586 * 587 * @see #TAG_GRAY_RESPONSE_UNIT 588 */ 589 public static final int GRAY_RESPONSE_UNIT_HUNDRED_THOUSANDTHS = 5; 590 591 /** 592 * Constant specifying the "GrayResponseCurve" tag. 593 */ 594 public static final int TAG_GRAY_RESPONSE_CURVE = 291; 595 596 /** 597 * Constant specifying the "T4Options" tag. 598 * 599 * @see #T4_OPTIONS_2D_CODING 600 * @see #T4_OPTIONS_UNCOMPRESSED 601 * @see #T4_OPTIONS_EOL_BYTE_ALIGNED 602 */ 603 public static final int TAG_T4_OPTIONS = 292; 604 605 /** 606 * A mask to be used with the "T4Options" tag. 607 * 608 * @see #TAG_T4_OPTIONS 609 */ 610 public static final int T4_OPTIONS_2D_CODING = 1; 611 612 /** 613 * A mask to be used with the "T4Options" tag. 614 * 615 * @see #TAG_T4_OPTIONS 616 */ 617 public static final int T4_OPTIONS_UNCOMPRESSED = 2; 618 619 /** 620 * A mask to be used with the "T4Options" tag. 621 * 622 * @see #TAG_T4_OPTIONS 623 */ 624 public static final int T4_OPTIONS_EOL_BYTE_ALIGNED = 4; 625 626 /** 627 * Constant specifying the "T6Options" tag. 628 * 629 * @see #T6_OPTIONS_UNCOMPRESSED 630 */ 631 public static final int TAG_T6_OPTIONS = 293; 632 633 /** 634 * A mask to be used with the "T6Options" tag. 635 * 636 * @see #TAG_T6_OPTIONS 637 */ 638 public static final int T6_OPTIONS_UNCOMPRESSED = 2; 639 640 /** 641 * Constant specifying the "ResolutionUnit" tag. 642 * 643 * @see #RESOLUTION_UNIT_NONE 644 * @see #RESOLUTION_UNIT_INCH 645 * @see #RESOLUTION_UNIT_CENTIMETER 646 */ 647 public static final int TAG_RESOLUTION_UNIT = 296; 648 649 /** 650 * A value to be used with the "ResolutionUnit" tag. 651 * 652 * @see #TAG_RESOLUTION_UNIT 653 */ 654 public static final int RESOLUTION_UNIT_NONE = 1; 655 656 /** 657 * A value to be used with the "ResolutionUnit" tag. 658 * 659 * @see #TAG_RESOLUTION_UNIT 660 */ 661 public static final int RESOLUTION_UNIT_INCH = 2; 662 663 /** 664 * A value to be used with the "ResolutionUnit" tag. 665 * 666 * @see #TAG_RESOLUTION_UNIT 667 */ 668 public static final int RESOLUTION_UNIT_CENTIMETER = 3; 669 670 671 /** 672 * Constant specifying the "PageNumber" tag. 673 */ 674 public static final int TAG_PAGE_NUMBER = 297; 675 676 /** 677 * Constant specifying the "TransferFunction" tag. 678 */ 679 public static final int TAG_TRANSFER_FUNCTION = 301; 680 681 /** 682 * Constant specifying the "Software" tag. 683 */ 684 public static final int TAG_SOFTWARE = 305; 685 686 /** 687 * Constant specifying the "DateTime" tag. 688 */ 689 public static final int TAG_DATE_TIME = 306; 690 691 /** 692 * Constant specifying the "Artist" tag. 693 */ 694 public static final int TAG_ARTIST = 315; 695 696 /** 697 * Constant specifying the "HostComputer" tag. 698 */ 699 public static final int TAG_HOST_COMPUTER = 316; 700 701 /** 702 * Constant specifying the "Predictor" tag. 703 * 704 * @see #TAG_WHITE_POINT 705 * @see #TAG_PRIMARY_CHROMATICITES 706 * @see #TAG_COLOR_MAP 707 * @see #TAG_HALFTONE_HINTS 708 * @see #TAG_TILE_WIDTH 709 * @see #TAG_TILE_LENGTH 710 * @see #TAG_TILE_OFFSETS 711 * @see #TAG_TILE_BYTE_COUNTS 712 */ 713 public static final int TAG_PREDICTOR = 317; 714 715 /** 716 * A value to be used with the "Predictor" tag. 717 * 718 * @see #TAG_PREDICTOR 719 */ 720 public static final int PREDICTOR_NONE = 1; 721 722 /** 723 * A value to be used with the "Predictor" tag. 724 * 725 * @see #TAG_PREDICTOR 726 */ 727 public static final int PREDICTOR_HORIZONTAL_DIFFERENCING = 2; 728 729 /** 730 * Constant specifying the "WhitePoint" tag. 731 */ 732 public static final int TAG_WHITE_POINT = 318; 733 734 /** 735 * Constant specifying the "PrimaryChromaticites" tag. 736 */ 737 public static final int TAG_PRIMARY_CHROMATICITES = 319; 738 739 /** 740 * Constant specifying the "ColorMap" tag. 741 */ 742 public static final int TAG_COLOR_MAP = 320; 743 744 /** 745 * Constant specifying the "HalftoneHints" tag. 746 */ 747 public static final int TAG_HALFTONE_HINTS = 321; 748 749 /** 750 * Constant specifying the "TileWidth" tag. 751 */ 752 public static final int TAG_TILE_WIDTH = 322; 753 754 /** 755 * Constant specifying the "TileLength" tag. 756 */ 757 public static final int TAG_TILE_LENGTH = 323; 758 759 /** 760 * Constant specifying the "TileOffsets" tag. 761 */ 762 public static final int TAG_TILE_OFFSETS = 324; 763 764 /** 765 * Constant specifying the "TileByteCounts" tag. 766 */ 767 public static final int TAG_TILE_BYTE_COUNTS = 325; 768 769 /** 770 * Constant specifying the "InkSet" tag. 771 * 772 * @see #INK_SET_CMYK 773 * @see #INK_SET_NOT_CMYK 774 */ 775 public static final int TAG_INK_SET = 332; 776 777 /** 778 * A value to be used with the "InkSet" tag. 779 * 780 * @see #TAG_INK_SET 781 */ 782 public static final int INK_SET_CMYK = 1; 783 784 /** 785 * A value to be used with the "InkSet" tag. 786 * 787 * @see #TAG_INK_SET 788 */ 789 public static final int INK_SET_NOT_CMYK = 2; 790 791 /** 792 * Constant specifying the "InkNames" tag. 793 */ 794 public static final int TAG_INK_NAMES = 333; 795 796 /** 797 * Constant specifying the "NumberOfInks" tag. 798 */ 799 public static final int TAG_NUMBER_OF_INKS = 334; 800 801 /** 802 * Constant specifying the "DotRange" tag. 803 */ 804 public static final int TAG_DOT_RANGE = 336; 805 806 /** 807 * Constant specifying the "TargetPrinter" tag. 808 */ 809 public static final int TAG_TARGET_PRINTER = 337; 810 811 /** 812 * Constant specifying the "ExtraSamples" tag. 813 * 814 * @see #EXTRA_SAMPLES_UNSPECIFIED 815 * @see #EXTRA_SAMPLES_ASSOCIATED_ALPHA 816 * @see #EXTRA_SAMPLES_UNASSOCIATED_ALPHA 817 */ 818 public static final int TAG_EXTRA_SAMPLES = 338; 819 820 /** 821 * A value to be used with the "ExtraSamples" tag. 822 * 823 * @see #TAG_EXTRA_SAMPLES 824 */ 825 public static final int EXTRA_SAMPLES_UNSPECIFIED = 0; 826 827 /** 828 * A value to be used with the "ExtraSamples" tag. 829 * 830 * @see #TAG_EXTRA_SAMPLES 831 */ 832 public static final int EXTRA_SAMPLES_ASSOCIATED_ALPHA = 1; 833 834 /** 835 * A value to be used with the "ExtraSamples" tag. 836 * 837 * @see #TAG_EXTRA_SAMPLES 838 */ 839 public static final int EXTRA_SAMPLES_UNASSOCIATED_ALPHA = 2; 840 841 /** 842 * Constant specifying the "SampleFormat" tag. 843 * 844 * @see #SAMPLE_FORMAT_UNSIGNED_INTEGER 845 * @see #SAMPLE_FORMAT_SIGNED_INTEGER 846 * @see #SAMPLE_FORMAT_FLOATING_POINT 847 * @see #SAMPLE_FORMAT_UNDEFINED 848 */ 849 public static final int TAG_SAMPLE_FORMAT = 339; 850 851 /** 852 * A value to be used with the "SampleFormat" tag. 853 * 854 * @see #TAG_SAMPLE_FORMAT 855 */ 856 public static final int SAMPLE_FORMAT_UNSIGNED_INTEGER = 1; 857 858 /** 859 * A value to be used with the "SampleFormat" tag. 860 * 861 * @see #TAG_SAMPLE_FORMAT 862 */ 863 public static final int SAMPLE_FORMAT_SIGNED_INTEGER = 2; 864 865 /** 866 * A value to be used with the "SampleFormat" tag. 867 * 868 * @see #TAG_SAMPLE_FORMAT 869 */ 870 public static final int SAMPLE_FORMAT_FLOATING_POINT = 3; 871 872 /** 873 * A value to be used with the "SampleFormat" tag. 874 * 875 * @see #TAG_SAMPLE_FORMAT 876 */ 877 public static final int SAMPLE_FORMAT_UNDEFINED = 4; 878 879 /** 880 * Constant specifying the "SMinSampleValue" tag. 881 */ 882 public static final int TAG_S_MIN_SAMPLE_VALUE = 340; 883 884 /** 885 * Constant specifying the "SMaxSampleValue" tag. 886 */ 887 public static final int TAG_S_MAX_SAMPLE_VALUE = 341; 888 889 /** 890 * Constant specifying the "TransferRange" tag. 891 */ 892 public static final int TAG_TRANSFER_RANGE = 342; 893 894 /** 895 * Constant specifying the "JPEGTables" tag. 896 * 897 * @see <a href="ftp://ftp.sgi.com/graphics/tiff/TTN2.draft.txt">JPEG-in-TIFF compression</a> 898 */ 899 public static final int TAG_JPEG_TABLES = 347; 900 901 /** 902 * Constant specifying the "JPEGProc" tag. 903 */ 904 public static final int TAG_JPEG_PROC = 512; 905 906 /** 907 * A value to be used with the "JPEGProc" tag. 908 * 909 * @see #TAG_JPEG_PROC 910 */ 911 public static final int JPEG_PROC_BASELINE = 1; 912 913 /** 914 * A value to be used with the "JPEGProc" tag. 915 * 916 * @see #TAG_JPEG_PROC 917 */ 918 public static final int JPEG_PROC_LOSSLESS = 14; 919 920 /** 921 * Constant specifying the "JPEGInterchangeFormat" tag. 922 */ 923 public static final int TAG_JPEG_INTERCHANGE_FORMAT = 513; 924 925 /** 926 * Constant specifying the "JPEGInterchangeFormatLength" tag. 927 */ 928 public static final int TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = 514; 929 930 /** 931 * Constant specifying the "JPEGRestartInterval" tag. 932 */ 933 public static final int TAG_JPEG_RESTART_INTERVAL = 515; 934 935 /** 936 * Constant specifying the "JPEGLosslessPredictors" tag. 937 */ 938 public static final int TAG_JPEG_LOSSLESS_PREDICTORS = 517; 939 940 /** 941 * Constant specifying the "JPEGPointTransforms" tag. 942 */ 943 public static final int TAG_JPEG_POINT_TRANSFORMS = 518; 944 945 /** 946 * Constant specifying the "JPEGQTables" tag. 947 */ 948 public static final int TAG_JPEG_Q_TABLES = 519; 949 950 /** 951 * Constant specifying the "JPEGDCTables" tag. 952 */ 953 public static final int TAG_JPEG_DC_TABLES = 520; 954 955 /** 956 * Constant specifying the "JPEGACTables" tag. 957 */ 958 public static final int TAG_JPEG_AC_TABLES = 521; 959 960 /** 961 * Constant specifying the "YCbCrCoefficients" tag. 962 */ 963 public static final int TAG_Y_CB_CR_COEFFICIENTS = 529; 964 965 /** 966 * Constant specifying the "YCbCrSubsampling" tag. 967 */ 968 public static final int TAG_Y_CB_CR_SUBSAMPLING = 530; 969 970 /** 971 * Constant specifying the "YCbCrPositioning" tag. 972 * 973 * @see #Y_CB_CR_POSITIONING_CENTERED 974 * @see #Y_CB_CR_POSITIONING_COSITED 975 */ 976 public static final int TAG_Y_CB_CR_POSITIONING = 531; 977 978 /** 979 * A value to be used with the "YCbCrPositioning" tag. 980 * 981 * @see #TAG_Y_CB_CR_POSITIONING 982 */ 983 public static final int Y_CB_CR_POSITIONING_CENTERED = 1; 984 985 /** 986 * A value to be used with the "YCbCrPositioning" tag. 987 * 988 * @see #TAG_Y_CB_CR_POSITIONING 989 */ 990 public static final int Y_CB_CR_POSITIONING_COSITED = 2; 991 992 /** 993 * Constant specifying the "ReferenceBlackWhite" tag. 994 */ 995 public static final int TAG_REFERENCE_BLACK_WHITE = 532; 996 997 /** 998 * Constant specifying the "Copyright" tag. 999 */ 1000 public static final int TAG_COPYRIGHT = 33432; 1001 1002 // Common non-baseline tags 1003 1004 // ICC profiles (Spec ICC 1:2001-04, Appendix B) 1005 1006 // 34675 - Embedded ICC Profile (UNDEFINED/any) 1007 1008 /** 1009 * Constant specifying the "ICC Profile" tag. 1010 * 1011 * @see <a href="http://www.color.org/ICC1V42.pdf">ICC Specification, section B.4: Embedding ICC profiles in TIFF files</a> 1012 */ 1013 public static final int TAG_ICC_PROFILE = 34675; 1014 1015 // Artist 1016 1017 static class Artist extends TIFFTag { 1018 1019 public Artist() { 1020 super("Artist", 1021 TAG_ARTIST, 1022 1 << TIFF_ASCII); 1023 } 1024 } 1025 1026 // BitsPerSample 1027 1028 static class BitsPerSample extends TIFFTag { 1029 1030 public BitsPerSample() { 1031 super("BitsPerSample", 1032 TAG_BITS_PER_SAMPLE, 1033 1 << TIFF_SHORT); 1034 } 1035 } 1036 1037 // CellLength 1038 1039 static class CellLength extends TIFFTag { 1040 1041 public CellLength() { 1042 super("CellLength", 1043 TAG_CELL_LENGTH, 1044 1 << TIFF_SHORT, 1045 1); 1046 } 1047 } 1048 1049 // CellWidth tag 1050 1051 static class CellWidth extends TIFFTag { 1052 1053 public CellWidth() { 1054 super("CellWidth", 1055 TAG_CELL_WIDTH, 1056 1 << TIFF_SHORT, 1057 1); 1058 } 1059 } 1060 1061 // ColorMap 1062 1063 static class ColorMap extends TIFFTag { 1064 1065 public ColorMap() { 1066 super("ColorMap", 1067 TAG_COLOR_MAP, 1068 1 << TIFF_SHORT); 1069 } 1070 } 1071 1072 // Compression 1073 1074 static class Compression extends TIFFTag { 1075 1076 public Compression() { 1077 super("Compression", 1078 TAG_COMPRESSION, 1079 1 << TIFF_SHORT, 1080 1); 1081 1082 addValueName(COMPRESSION_NONE, "Uncompressed"); 1083 addValueName(COMPRESSION_CCITT_RLE, "CCITT RLE"); 1084 addValueName(COMPRESSION_CCITT_T_4, "CCITT T.4"); 1085 addValueName(COMPRESSION_CCITT_T_6, "CCITT T.6"); 1086 addValueName(COMPRESSION_LZW, "LZW"); 1087 addValueName(COMPRESSION_OLD_JPEG, "Old JPEG"); 1088 addValueName(COMPRESSION_JPEG, "JPEG"); 1089 addValueName(COMPRESSION_ZLIB, "ZLib"); 1090 addValueName(COMPRESSION_PACKBITS, "PackBits"); 1091 addValueName(COMPRESSION_DEFLATE, "Deflate"); // Non-baseline 1092 1093 // 32771 CCITT 1094 // 32809 ThunderScan 1095 // 32766 NeXT 1096 // 32909 Pixar 1097 // 34676 SGI 1098 // 34677 SGI 1099 } 1100 } 1101 1102 // Copyright 1103 1104 static class Copyright extends TIFFTag { 1105 1106 public Copyright() { 1107 super("Copyright", 1108 TAG_COPYRIGHT, 1109 1 << TIFF_ASCII); 1110 } 1111 } 1112 1113 // DateTime 1114 1115 static class DateTime extends TIFFTag { 1116 1117 public DateTime() { 1118 super("DateTime", 1119 TAG_DATE_TIME, 1120 1 << TIFF_ASCII, 1121 20); 1122 } 1123 } 1124 1125 // DocumentName 1126 1127 static class DocumentName extends TIFFTag { 1128 1129 public DocumentName() { 1130 super("DocumentName", 1131 TAG_DOCUMENT_NAME, 1132 1 << TIFF_ASCII); 1133 } 1134 } 1135 1136 // DotRange 1137 1138 static class DotRange extends TIFFTag { 1139 1140 public DotRange() { 1141 super("DotRange", 1142 TAG_DOT_RANGE, 1143 (1 << TIFF_BYTE) | 1144 (1 << TIFF_SHORT)); 1145 } 1146 } 1147 1148 // ExtraSamples 1149 1150 static class ExtraSamples extends TIFFTag { 1151 1152 public ExtraSamples() { 1153 super("ExtraSamples", 1154 TAG_EXTRA_SAMPLES, 1155 1 << TIFF_SHORT); 1156 1157 addValueName(EXTRA_SAMPLES_UNSPECIFIED, 1158 "Unspecified"); 1159 addValueName(EXTRA_SAMPLES_ASSOCIATED_ALPHA, 1160 "Associated Alpha"); 1161 addValueName(EXTRA_SAMPLES_UNASSOCIATED_ALPHA, 1162 "Unassociated Alpha"); 1163 } 1164 } 1165 1166 // FillOrder 1167 1168 static class FillOrder extends TIFFTag { 1169 1170 public FillOrder() { 1171 super("FillOrder", 1172 TAG_FILL_ORDER, 1173 1 << TIFF_SHORT, 1174 1); 1175 1176 addValueName(FILL_ORDER_LEFT_TO_RIGHT, "LeftToRight"); 1177 addValueName(FILL_ORDER_RIGHT_TO_LEFT, "RightToLeft"); 1178 } 1179 } 1180 1181 // FreeByteCounts 1182 1183 static class FreeByteCounts extends TIFFTag { 1184 1185 public FreeByteCounts() { 1186 super("FreeByteCounts", 1187 TAG_FREE_BYTE_COUNTS, 1188 1 << TIFF_LONG); 1189 } 1190 } 1191 1192 // FreeOffsets 1193 1194 static class FreeOffsets extends TIFFTag { 1195 1196 public FreeOffsets() { 1197 super("FreeOffsets", 1198 TAG_FREE_OFFSETS, 1199 1 << TIFF_LONG); 1200 } 1201 } 1202 1203 // GrayResponseCurve 1204 1205 static class GrayResponseCurve extends TIFFTag { 1206 1207 public GrayResponseCurve() { 1208 super("GrayResponseCurve", 1209 TAG_GRAY_RESPONSE_CURVE, 1210 1 << TIFF_SHORT); 1211 } 1212 } 1213 1214 // GrayResponseUnit 1215 1216 static class GrayResponseUnit extends TIFFTag { 1217 1218 public GrayResponseUnit() { 1219 super("GrayResponseUnit", 1220 TAG_GRAY_RESPONSE_UNIT, 1221 1 << TIFF_SHORT, 1222 1); 1223 1224 addValueName(GRAY_RESPONSE_UNIT_TENTHS, 1225 "Tenths"); 1226 addValueName(GRAY_RESPONSE_UNIT_HUNDREDTHS, 1227 "Hundredths"); 1228 addValueName(GRAY_RESPONSE_UNIT_THOUSANDTHS, 1229 "Thousandths"); 1230 addValueName(GRAY_RESPONSE_UNIT_TEN_THOUSANDTHS, 1231 "Ten-Thousandths"); 1232 addValueName(GRAY_RESPONSE_UNIT_HUNDRED_THOUSANDTHS, 1233 "Hundred-Thousandths"); 1234 } 1235 } 1236 1237 // HalftoneHints 1238 1239 static class HalftoneHints extends TIFFTag { 1240 1241 public HalftoneHints() { 1242 super("HalftoneHints", 1243 TAG_HALFTONE_HINTS, 1244 1 << TIFF_SHORT, 1245 2); 1246 } 1247 } 1248 1249 // HostComputer 1250 1251 static class HostComputer extends TIFFTag { 1252 1253 public HostComputer() { 1254 super("HostComputer", 1255 TAG_HOST_COMPUTER, 1256 1 << TIFF_ASCII); 1257 } 1258 } 1259 1260 // ImageDescription 1261 1262 static class ImageDescription extends TIFFTag { 1263 1264 public ImageDescription() { 1265 super("ImageDescription", 1266 TAG_IMAGE_DESCRIPTION, 1267 1 << TIFF_ASCII); 1268 } 1269 } 1270 1271 // ImageLength tag 1272 1273 static class ImageLength extends TIFFTag { 1274 1275 public ImageLength() { 1276 super("ImageLength", 1277 TAG_IMAGE_LENGTH, 1278 (1 << TIFF_SHORT) | 1279 (1 << TIFF_LONG), 1280 1); 1281 } 1282 } 1283 1284 // ImageWidth tag 1285 1286 static class ImageWidth extends TIFFTag { 1287 1288 public ImageWidth() { 1289 super("ImageWidth", 1290 TAG_IMAGE_WIDTH, 1291 (1 << TIFF_SHORT) | 1292 (1 << TIFF_LONG), 1293 1); 1294 } 1295 } 1296 1297 // InkNames 1298 1299 static class InkNames extends TIFFTag { 1300 1301 public InkNames() { 1302 super("InkNames", 1303 TAG_INK_NAMES, 1304 1 << TIFF_ASCII); 1305 } 1306 } 1307 1308 // InkSet 1309 1310 static class InkSet extends TIFFTag { 1311 1312 public InkSet() { 1313 super("InkSet", 1314 TAG_INK_SET, 1315 1 << TIFF_SHORT, 1316 1); 1317 1318 addValueName(INK_SET_CMYK, "CMYK"); 1319 addValueName(INK_SET_NOT_CMYK, "Not CMYK"); 1320 } 1321 } 1322 1323 // JPEGTables (Tech note) 1324 1325 static class JPEGTables extends TIFFTag { 1326 1327 public JPEGTables() { 1328 super("JPEGTables", 1329 TAG_JPEG_TABLES, 1330 1 << TIFF_UNDEFINED); 1331 } 1332 } 1333 1334 // JPEGACTables 1335 1336 static class JPEGACTables extends TIFFTag { 1337 1338 public JPEGACTables() { 1339 super("JPEGACTables", 1340 TAG_JPEG_AC_TABLES, 1341 1 << TIFF_LONG); 1342 } 1343 } 1344 1345 // JPEGDCTables 1346 1347 static class JPEGDCTables extends TIFFTag { 1348 1349 public JPEGDCTables() { 1350 super("JPEGDCTables", 1351 TAG_JPEG_DC_TABLES, 1352 1 << TIFF_LONG); 1353 } 1354 } 1355 1356 // JPEGInterchangeFormat 1357 1358 static class JPEGInterchangeFormat extends TIFFTag { 1359 1360 public JPEGInterchangeFormat() { 1361 super("JPEGInterchangeFormat", 1362 TAG_JPEG_INTERCHANGE_FORMAT, 1363 1 << TIFF_LONG, 1364 1); 1365 } 1366 } 1367 1368 // JPEGInterchangeFormatLength 1369 1370 static class JPEGInterchangeFormatLength extends TIFFTag { 1371 1372 public JPEGInterchangeFormatLength() { 1373 super("JPEGInterchangeFormatLength", 1374 TAG_JPEG_INTERCHANGE_FORMAT_LENGTH, 1375 1 << TIFF_LONG, 1376 1); 1377 } 1378 } 1379 1380 // JPEGLosslessPredictors 1381 1382 static class JPEGLosslessPredictors extends TIFFTag { 1383 1384 public JPEGLosslessPredictors() { 1385 super("JPEGLosslessPredictors", 1386 TAG_JPEG_LOSSLESS_PREDICTORS, 1387 1 << TIFF_SHORT); 1388 1389 addValueName(1, "A"); 1390 addValueName(2, "B"); 1391 addValueName(3, "C"); 1392 addValueName(4, "A+B-C"); 1393 addValueName(5, "A+((B-C)/2)"); 1394 addValueName(6, "B+((A-C)/2)"); 1395 addValueName(7, "(A+B)/2"); 1396 } 1397 } 1398 1399 // JPEGPointTransforms 1400 1401 static class JPEGPointTransforms extends TIFFTag { 1402 1403 public JPEGPointTransforms() { 1404 super("JPEGPointTransforms", 1405 TAG_JPEG_POINT_TRANSFORMS, 1406 1 << TIFF_SHORT); 1407 } 1408 } 1409 1410 // JPEGProc 1411 1412 static class JPEGProc extends TIFFTag { 1413 1414 public JPEGProc() { 1415 super("JPEGProc", 1416 TAG_JPEG_PROC, 1417 1 << TIFF_SHORT, 1418 1); 1419 1420 addValueName(JPEG_PROC_BASELINE, "Baseline sequential process"); 1421 addValueName(JPEG_PROC_LOSSLESS, 1422 "Lossless process with Huffman coding"); 1423 } 1424 } 1425 1426 // JPEGQTables 1427 1428 static class JPEGQTables extends TIFFTag { 1429 1430 public JPEGQTables() { 1431 super("JPEGQTables", 1432 TAG_JPEG_Q_TABLES, 1433 1 << TIFF_LONG); 1434 } 1435 } 1436 1437 // JPEGRestartInterval 1438 1439 static class JPEGRestartInterval extends TIFFTag { 1440 1441 public JPEGRestartInterval() { 1442 super("JPEGRestartInterval", 1443 TAG_JPEG_RESTART_INTERVAL, 1444 1 << TIFF_SHORT, 1445 1); 1446 } 1447 } 1448 1449 // Make 1450 1451 static class Make extends TIFFTag { 1452 1453 public Make() { 1454 super("Make", 1455 TAG_MAKE, 1456 1 << TIFF_ASCII); 1457 } 1458 } 1459 1460 // MaxSampleValue 1461 1462 static class MaxSampleValue extends TIFFTag { 1463 1464 public MaxSampleValue() { 1465 super("MaxSampleValue", 1466 TAG_MAX_SAMPLE_VALUE, 1467 1 << TIFF_SHORT); 1468 } 1469 } 1470 1471 // MinSampleValue 1472 1473 static class MinSampleValue extends TIFFTag { 1474 1475 public MinSampleValue() { 1476 super("MinSampleValue", 1477 TAG_MIN_SAMPLE_VALUE, 1478 1 << TIFF_SHORT); 1479 } 1480 } 1481 1482 // Model 1483 1484 static class Model extends TIFFTag { 1485 1486 public Model() { 1487 super("Model", 1488 TAG_MODEL, 1489 1 << TIFF_ASCII); 1490 } 1491 } 1492 1493 // NewSubfileType 1494 1495 static class NewSubfileType extends TIFFTag { 1496 1497 public NewSubfileType() { 1498 super("NewSubfileType", 1499 TAG_NEW_SUBFILE_TYPE, 1500 1 << TIFF_LONG, 1501 1); 1502 1503 addValueName(0, 1504 "Default"); 1505 addValueName(NEW_SUBFILE_TYPE_REDUCED_RESOLUTION, 1506 "ReducedResolution"); 1507 addValueName(NEW_SUBFILE_TYPE_SINGLE_PAGE, 1508 "SinglePage"); 1509 addValueName(NEW_SUBFILE_TYPE_SINGLE_PAGE | 1510 NEW_SUBFILE_TYPE_REDUCED_RESOLUTION, 1511 "SinglePage+ReducedResolution"); 1512 addValueName(NEW_SUBFILE_TYPE_TRANSPARENCY, 1513 "Transparency"); 1514 addValueName(NEW_SUBFILE_TYPE_TRANSPARENCY | 1515 NEW_SUBFILE_TYPE_REDUCED_RESOLUTION, 1516 "Transparency+ReducedResolution"); 1517 addValueName(NEW_SUBFILE_TYPE_TRANSPARENCY | 1518 NEW_SUBFILE_TYPE_SINGLE_PAGE, 1519 "Transparency+SinglePage"); 1520 addValueName(NEW_SUBFILE_TYPE_TRANSPARENCY | 1521 NEW_SUBFILE_TYPE_SINGLE_PAGE | 1522 NEW_SUBFILE_TYPE_REDUCED_RESOLUTION, 1523 "Transparency+SinglePage+ReducedResolution"); 1524 } 1525 } 1526 1527 // NumberOfInks 1528 1529 static class NumberOfInks extends TIFFTag { 1530 1531 public NumberOfInks() { 1532 super("NumberOfInks", 1533 TAG_NUMBER_OF_INKS, 1534 1 << TIFF_SHORT, 1535 1); 1536 } 1537 } 1538 1539 // Orientation 1540 1541 static class Orientation extends TIFFTag { 1542 1543 public Orientation() { 1544 super("Orientation", 1545 TAG_ORIENTATION, 1546 1 << TIFF_SHORT, 1547 1); 1548 1549 addValueName(ORIENTATION_ROW_0_TOP_COLUMN_0_LEFT, 1550 "Row 0=Top, Column 0=Left"); 1551 addValueName(ORIENTATION_ROW_0_TOP_COLUMN_0_RIGHT, 1552 "Row 0=Top, Column 0=Right"); 1553 addValueName(ORIENTATION_ROW_0_BOTTOM_COLUMN_0_RIGHT, 1554 "Row 0=Bottom, Column 0=Right"); 1555 addValueName(ORIENTATION_ROW_0_BOTTOM_COLUMN_0_LEFT, 1556 "Row 0=Bottom, Column 0=Left"); 1557 addValueName(ORIENTATION_ROW_0_LEFT_COLUMN_0_TOP, 1558 "Row 0=Left, Column 0=Top"); 1559 addValueName(ORIENTATION_ROW_0_RIGHT_COLUMN_0_TOP, 1560 "Row 0=Right, Column 0=Top"); 1561 addValueName(ORIENTATION_ROW_0_RIGHT_COLUMN_0_BOTTOM, 1562 "Row 0=Right, Column 0=Bottom"); 1563 } 1564 } 1565 1566 // PageName 1567 1568 static class PageName extends TIFFTag { 1569 1570 public PageName() { 1571 super("PageName", 1572 TAG_PAGE_NAME, 1573 1 << TIFF_ASCII); 1574 } 1575 } 1576 1577 // PageNumber 1578 1579 static class PageNumber extends TIFFTag { 1580 1581 public PageNumber() { 1582 super("PageNumber", 1583 TAG_PAGE_NUMBER, 1584 1 << TIFF_SHORT); 1585 } 1586 } 1587 1588 // PhotometricInterpretation 1589 1590 static class PhotometricInterpretation extends TIFFTag { 1591 1592 public PhotometricInterpretation() { 1593 super("PhotometricInterpretation", 1594 TAG_PHOTOMETRIC_INTERPRETATION, 1595 1 << TIFF_SHORT, 1596 1); 1597 1598 addValueName(PHOTOMETRIC_INTERPRETATION_WHITE_IS_ZERO, 1599 "WhiteIsZero"); 1600 addValueName(PHOTOMETRIC_INTERPRETATION_BLACK_IS_ZERO, 1601 "BlackIsZero"); 1602 addValueName(PHOTOMETRIC_INTERPRETATION_RGB, 1603 "RGB"); 1604 addValueName(PHOTOMETRIC_INTERPRETATION_PALETTE_COLOR, 1605 "Palette Color"); 1606 addValueName(PHOTOMETRIC_INTERPRETATION_TRANSPARENCY_MASK, 1607 "Transparency Mask"); 1608 addValueName(PHOTOMETRIC_INTERPRETATION_CMYK, 1609 "CMYK"); 1610 addValueName(PHOTOMETRIC_INTERPRETATION_Y_CB_CR, 1611 "YCbCr"); 1612 addValueName(PHOTOMETRIC_INTERPRETATION_CIELAB, 1613 "CIELAB"); 1614 addValueName(PHOTOMETRIC_INTERPRETATION_ICCLAB, 1615 "ICCLAB"); // Non-baseline 1616 } 1617 } 1618 1619 // PlanarConfiguration 1620 1621 static class PlanarConfiguration extends TIFFTag { 1622 1623 public PlanarConfiguration() { 1624 super("PlanarConfiguration", 1625 TAG_PLANAR_CONFIGURATION, 1626 1 << TIFF_SHORT, 1627 1); 1628 1629 addValueName(PLANAR_CONFIGURATION_CHUNKY, "Chunky"); 1630 addValueName(PLANAR_CONFIGURATION_PLANAR, "Planar"); 1631 } 1632 } 1633 1634 // Predictor 1635 1636 static class Predictor extends TIFFTag { 1637 1638 public Predictor() { 1639 super("Predictor", 1640 TAG_PREDICTOR, 1641 1 << TIFF_SHORT, 1642 1); 1643 1644 addValueName(PREDICTOR_NONE, 1645 "None"); 1646 addValueName(PREDICTOR_HORIZONTAL_DIFFERENCING, 1647 "Horizontal Differencing"); 1648 } 1649 } 1650 1651 // PrimaryChromaticities 1652 1653 static class PrimaryChromaticities extends TIFFTag { 1654 1655 public PrimaryChromaticities() { 1656 super("PrimaryChromaticities", 1657 TAG_PRIMARY_CHROMATICITES, 1658 1 << TIFF_RATIONAL, 1659 6); 1660 } 1661 } 1662 1663 // ReferenceBlackWhite 1664 1665 static class ReferenceBlackWhite extends TIFFTag { 1666 1667 public ReferenceBlackWhite() { 1668 super("ReferenceBlackWhite", 1669 TAG_REFERENCE_BLACK_WHITE, 1670 1 << TIFF_RATIONAL); 1671 } 1672 } 1673 1674 // ResolutionUnit 1675 1676 static class ResolutionUnit extends TIFFTag { 1677 1678 public ResolutionUnit() { 1679 super("ResolutionUnit", 1680 TAG_RESOLUTION_UNIT, 1681 1 << TIFF_SHORT, 1682 1); 1683 1684 addValueName(RESOLUTION_UNIT_NONE, "None"); 1685 addValueName(RESOLUTION_UNIT_INCH, "Inch"); 1686 addValueName(RESOLUTION_UNIT_CENTIMETER, "Centimeter"); 1687 } 1688 } 1689 1690 // RowsPerStrip 1691 1692 static class RowsPerStrip extends TIFFTag { 1693 1694 public RowsPerStrip() { 1695 super("RowsPerStrip", 1696 TAG_ROWS_PER_STRIP, 1697 (1 << TIFF_SHORT) | 1698 (1 << TIFF_LONG), 1699 1); 1700 } 1701 } 1702 1703 // SampleFormat 1704 1705 static class SampleFormat extends TIFFTag { 1706 1707 public SampleFormat() { 1708 super("SampleFormat", 1709 TAG_SAMPLE_FORMAT, 1710 1 << TIFF_SHORT); 1711 1712 addValueName(SAMPLE_FORMAT_UNSIGNED_INTEGER, "Unsigned Integer"); 1713 addValueName(SAMPLE_FORMAT_SIGNED_INTEGER, "Signed Integer"); 1714 addValueName(SAMPLE_FORMAT_FLOATING_POINT, "Floating Point"); 1715 addValueName(SAMPLE_FORMAT_UNDEFINED, "Undefined"); 1716 } 1717 } 1718 1719 // SamplesPerPixel 1720 1721 static class SamplesPerPixel extends TIFFTag { 1722 1723 public SamplesPerPixel() { 1724 super("SamplesPerPixel", 1725 TAG_SAMPLES_PER_PIXEL, 1726 1 << TIFF_SHORT, 1727 1); 1728 } 1729 } 1730 1731 // SMaxSampleValue 1732 1733 static class SMaxSampleValue extends TIFFTag { 1734 1735 public SMaxSampleValue() { 1736 super("SMaxSampleValue", 1737 TAG_S_MAX_SAMPLE_VALUE, 1738 (1 << TIFF_BYTE) | 1739 (1 << TIFF_SHORT) | 1740 (1 << TIFF_LONG) | 1741 (1 << TIFF_RATIONAL) | 1742 (1 << TIFF_SBYTE) | 1743 (1 << TIFF_SSHORT) | 1744 (1 << TIFF_SLONG) | 1745 (1 << TIFF_SRATIONAL) | 1746 (1 << TIFF_FLOAT) | 1747 (1 << TIFF_DOUBLE)); 1748 } 1749 } 1750 1751 // SMinSampleValue 1752 1753 static class SMinSampleValue extends TIFFTag { 1754 1755 public SMinSampleValue() { 1756 super("SMinSampleValue", 1757 TAG_S_MIN_SAMPLE_VALUE, 1758 (1 << TIFF_BYTE) | 1759 (1 << TIFF_SHORT) | 1760 (1 << TIFF_LONG) | 1761 (1 << TIFF_RATIONAL) | 1762 (1 << TIFF_SBYTE) | 1763 (1 << TIFF_SSHORT) | 1764 (1 << TIFF_SLONG) | 1765 (1 << TIFF_SRATIONAL) | 1766 (1 << TIFF_FLOAT) | 1767 (1 << TIFF_DOUBLE)); 1768 } 1769 } 1770 1771 // Software 1772 1773 static class Software extends TIFFTag { 1774 1775 public Software() { 1776 super("Software", 1777 TAG_SOFTWARE, 1778 1 << TIFF_ASCII); 1779 } 1780 } 1781 1782 // StripByteCounts 1783 1784 static class StripByteCounts extends TIFFTag { 1785 1786 public StripByteCounts() { 1787 super("StripByteCounts", 1788 TAG_STRIP_BYTE_COUNTS, 1789 (1 << TIFF_SHORT) | 1790 (1 << TIFF_LONG)); 1791 } 1792 } 1793 1794 // StripOffsets 1795 1796 static class StripOffsets extends TIFFTag { 1797 1798 public StripOffsets() { 1799 super("StripOffsets", 1800 TAG_STRIP_OFFSETS, 1801 (1 << TIFF_SHORT) | 1802 (1 << TIFF_LONG)); 1803 } 1804 } 1805 1806 // SubfileType (deprecated by TIFF but retained for backward compatibility) 1807 1808 static class SubfileType extends TIFFTag { 1809 1810 public SubfileType() { 1811 super("SubfileType", 1812 TAG_SUBFILE_TYPE, 1813 1 << TIFF_SHORT, 1814 1); 1815 1816 addValueName(SUBFILE_TYPE_FULL_RESOLUTION, "FullResolution"); 1817 addValueName(SUBFILE_TYPE_REDUCED_RESOLUTION, "ReducedResolution"); 1818 addValueName(SUBFILE_TYPE_SINGLE_PAGE, "SinglePage"); 1819 } 1820 } 1821 1822 // T4Options 1823 1824 static class T4Options extends TIFFTag { 1825 1826 public T4Options() { 1827 super("T4Options", 1828 TAG_T4_OPTIONS, 1829 1 << TIFF_LONG, 1830 1); 1831 1832 addValueName(0, 1833 "Default 1DCoding"); // 0x00 1834 addValueName(T4_OPTIONS_2D_CODING, 1835 "2DCoding"); // 0x01 1836 addValueName(T4_OPTIONS_UNCOMPRESSED, 1837 "Uncompressed"); // 0x02 1838 addValueName(T4_OPTIONS_2D_CODING | 1839 T4_OPTIONS_UNCOMPRESSED, 1840 "2DCoding+Uncompressed"); // 0x03 1841 addValueName(T4_OPTIONS_EOL_BYTE_ALIGNED, 1842 "EOLByteAligned"); // 0x04 1843 addValueName(T4_OPTIONS_2D_CODING | 1844 T4_OPTIONS_EOL_BYTE_ALIGNED, 1845 "2DCoding+EOLByteAligned"); // 0x05 1846 addValueName(T4_OPTIONS_UNCOMPRESSED | 1847 T4_OPTIONS_EOL_BYTE_ALIGNED, 1848 "Uncompressed+EOLByteAligned"); // 0x06 1849 addValueName(T4_OPTIONS_2D_CODING | 1850 T4_OPTIONS_UNCOMPRESSED | 1851 T4_OPTIONS_EOL_BYTE_ALIGNED, 1852 "2DCoding+Uncompressed+EOLByteAligned"); // 0x07 1853 } 1854 } 1855 1856 // T6Options 1857 1858 static class T6Options extends TIFFTag { 1859 1860 public T6Options() { 1861 super("T6Options", 1862 TAG_T6_OPTIONS, 1863 1 << TIFF_LONG, 1864 1); 1865 1866 addValueName(0, 1867 "Default"); // 0x00 1868 // 0x01 is not possible as bit 0 is unused and always zero. 1869 addValueName(T6_OPTIONS_UNCOMPRESSED, 1870 "Uncompressed"); // 0x02 1871 } 1872 } 1873 1874 // TargetPrinter 1875 1876 static class TargetPrinter extends TIFFTag { 1877 1878 public TargetPrinter() { 1879 super("TargetPrinter", 1880 TAG_TARGET_PRINTER, 1881 1 << TIFF_ASCII); 1882 } 1883 } 1884 1885 // Threshholding 1886 1887 static class Threshholding extends TIFFTag { 1888 1889 public Threshholding() { 1890 super("Threshholding", 1891 TAG_THRESHHOLDING, 1892 1 << TIFF_SHORT, 1893 1); 1894 1895 addValueName(1, "None"); 1896 addValueName(2, "OrderedDither"); 1897 addValueName(3, "RandomizedDither"); 1898 } 1899 } 1900 1901 // TileByteCounts 1902 1903 static class TileByteCounts extends TIFFTag { 1904 1905 public TileByteCounts() { 1906 super("TileByteCounts", 1907 TAG_TILE_BYTE_COUNTS, 1908 (1 << TIFF_SHORT) | 1909 (1 << TIFF_LONG)); 1910 } 1911 } 1912 1913 // TileOffsets 1914 1915 static class TileOffsets extends TIFFTag { 1916 1917 public TileOffsets() { 1918 super("TileOffsets", 1919 TAG_TILE_OFFSETS, 1920 1 << TIFF_LONG); 1921 } 1922 } 1923 1924 // TileLength tag 1925 1926 static class TileLength extends TIFFTag { 1927 1928 public TileLength() { 1929 super("TileLength", 1930 TAG_TILE_LENGTH, 1931 (1 << TIFF_SHORT) | 1932 (1 << TIFF_LONG), 1933 1); 1934 } 1935 } 1936 1937 // TileWidth tag 1938 1939 static class TileWidth extends TIFFTag { 1940 1941 public TileWidth() { 1942 super("TileWidth", 1943 TAG_TILE_WIDTH, 1944 (1 << TIFF_SHORT) | 1945 (1 << TIFF_LONG), 1946 1); 1947 } 1948 } 1949 1950 // TransferFunction 1951 1952 static class TransferFunction extends TIFFTag { 1953 1954 public TransferFunction() { 1955 super("TransferFunction", 1956 TAG_TRANSFER_FUNCTION, 1957 1 << TIFF_SHORT); 1958 } 1959 } 1960 1961 // TransferRange 1962 1963 static class TransferRange extends TIFFTag { 1964 1965 public TransferRange() { 1966 super("TransferRange", 1967 TAG_TRANSFER_RANGE, 1968 1 << TIFF_SHORT, 1969 6); 1970 } 1971 } 1972 1973 // WhitePoint 1974 1975 static class WhitePoint extends TIFFTag { 1976 1977 public WhitePoint() { 1978 super("WhitePoint", 1979 TAG_WHITE_POINT, 1980 1 << TIFF_RATIONAL, 1981 2); 1982 } 1983 } 1984 1985 // XPosition 1986 1987 static class XPosition extends TIFFTag { 1988 1989 public XPosition() { 1990 super("XPosition", 1991 TAG_X_POSITION, 1992 1 << TIFF_RATIONAL, 1993 1); 1994 } 1995 } 1996 1997 // XResolution 1998 1999 static class XResolution extends TIFFTag { 2000 2001 public XResolution() { 2002 super("XResolution", 2003 TAG_X_RESOLUTION, 2004 1 << TIFF_RATIONAL, 2005 1); 2006 } 2007 } 2008 2009 // YCbCrCoefficients 2010 2011 static class YCbCrCoefficients extends TIFFTag { 2012 2013 public YCbCrCoefficients() { 2014 super("YCbCrCoefficients", 2015 TAG_Y_CB_CR_COEFFICIENTS, 2016 1 << TIFF_RATIONAL, 2017 3); 2018 } 2019 } 2020 2021 // YCbCrPositioning 2022 2023 static class YCbCrPositioning extends TIFFTag { 2024 2025 public YCbCrPositioning() { 2026 super("YCbCrPositioning", 2027 TAG_Y_CB_CR_POSITIONING, 2028 1 << TIFF_SHORT, 2029 1); 2030 2031 addValueName(Y_CB_CR_POSITIONING_CENTERED, "Centered"); 2032 addValueName(Y_CB_CR_POSITIONING_COSITED, "Cosited"); 2033 } 2034 } 2035 2036 // YCbCrSubSampling 2037 2038 static class YCbCrSubSampling extends TIFFTag { 2039 2040 public YCbCrSubSampling() { 2041 super("YCbCrSubSampling", 2042 TAG_Y_CB_CR_SUBSAMPLING, 2043 1 << TIFF_SHORT, 2044 2); 2045 } 2046 } 2047 2048 // YPosition 2049 2050 static class YPosition extends TIFFTag { 2051 2052 public YPosition() { 2053 super("YPosition", 2054 TAG_Y_POSITION, 2055 1 << TIFF_RATIONAL, 2056 1); 2057 } 2058 } 2059 2060 // YResolution 2061 2062 static class YResolution extends TIFFTag { 2063 2064 public YResolution() { 2065 super("YResolution", 2066 TAG_Y_RESOLUTION, 2067 1 << TIFF_RATIONAL, 2068 1); 2069 } 2070 } 2071 2072 // Non-6.0 tags 2073 2074 // ICC Profile (Spec. ICC.1:2001-12, File Format for Color Profiles) 2075 2076 static class ICCProfile extends TIFFTag { 2077 2078 public ICCProfile() { 2079 super("ICC Profile", 2080 TAG_ICC_PROFILE, 2081 1 << TIFF_UNDEFINED); 2082 } 2083 } 2084 2085 private static List<TIFFTag> tags; 2086 2087 private static void initTags() { 2088 tags = new ArrayList<TIFFTag>(76); 2089 2090 tags.add(new BaselineTIFFTagSet.Artist()); 2091 tags.add(new BaselineTIFFTagSet.BitsPerSample()); 2092 tags.add(new BaselineTIFFTagSet.CellLength()); 2093 tags.add(new BaselineTIFFTagSet.CellWidth()); 2094 tags.add(new BaselineTIFFTagSet.ColorMap()); 2095 tags.add(new BaselineTIFFTagSet.Compression()); 2096 tags.add(new BaselineTIFFTagSet.Copyright()); 2097 tags.add(new BaselineTIFFTagSet.DateTime()); 2098 tags.add(new BaselineTIFFTagSet.DocumentName()); 2099 tags.add(new BaselineTIFFTagSet.DotRange()); 2100 tags.add(new BaselineTIFFTagSet.ExtraSamples()); 2101 tags.add(new BaselineTIFFTagSet.FillOrder()); 2102 tags.add(new BaselineTIFFTagSet.FreeByteCounts()); 2103 tags.add(new BaselineTIFFTagSet.FreeOffsets()); 2104 tags.add(new BaselineTIFFTagSet.GrayResponseCurve()); 2105 tags.add(new BaselineTIFFTagSet.GrayResponseUnit()); 2106 tags.add(new BaselineTIFFTagSet.HalftoneHints()); 2107 tags.add(new BaselineTIFFTagSet.HostComputer()); 2108 tags.add(new BaselineTIFFTagSet.ImageDescription()); 2109 tags.add(new BaselineTIFFTagSet.ICCProfile()); 2110 tags.add(new BaselineTIFFTagSet.ImageLength()); 2111 tags.add(new BaselineTIFFTagSet.ImageWidth()); 2112 tags.add(new BaselineTIFFTagSet.InkNames()); 2113 tags.add(new BaselineTIFFTagSet.InkSet()); 2114 tags.add(new BaselineTIFFTagSet.JPEGACTables()); 2115 tags.add(new BaselineTIFFTagSet.JPEGDCTables()); 2116 tags.add(new BaselineTIFFTagSet.JPEGInterchangeFormat()); 2117 tags.add(new BaselineTIFFTagSet.JPEGInterchangeFormatLength()); 2118 tags.add(new BaselineTIFFTagSet.JPEGLosslessPredictors()); 2119 tags.add(new BaselineTIFFTagSet.JPEGPointTransforms()); 2120 tags.add(new BaselineTIFFTagSet.JPEGProc()); 2121 tags.add(new BaselineTIFFTagSet.JPEGQTables()); 2122 tags.add(new BaselineTIFFTagSet.JPEGRestartInterval()); 2123 tags.add(new BaselineTIFFTagSet.JPEGTables()); 2124 tags.add(new BaselineTIFFTagSet.Make()); 2125 tags.add(new BaselineTIFFTagSet.MaxSampleValue()); 2126 tags.add(new BaselineTIFFTagSet.MinSampleValue()); 2127 tags.add(new BaselineTIFFTagSet.Model()); 2128 tags.add(new BaselineTIFFTagSet.NewSubfileType()); 2129 tags.add(new BaselineTIFFTagSet.NumberOfInks()); 2130 tags.add(new BaselineTIFFTagSet.Orientation()); 2131 tags.add(new BaselineTIFFTagSet.PageName()); 2132 tags.add(new BaselineTIFFTagSet.PageNumber()); 2133 tags.add(new BaselineTIFFTagSet.PhotometricInterpretation()); 2134 tags.add(new BaselineTIFFTagSet.PlanarConfiguration()); 2135 tags.add(new BaselineTIFFTagSet.Predictor()); 2136 tags.add(new BaselineTIFFTagSet.PrimaryChromaticities()); 2137 tags.add(new BaselineTIFFTagSet.ReferenceBlackWhite()); 2138 tags.add(new BaselineTIFFTagSet.ResolutionUnit()); 2139 tags.add(new BaselineTIFFTagSet.RowsPerStrip()); 2140 tags.add(new BaselineTIFFTagSet.SampleFormat()); 2141 tags.add(new BaselineTIFFTagSet.SamplesPerPixel()); 2142 tags.add(new BaselineTIFFTagSet.SMaxSampleValue()); 2143 tags.add(new BaselineTIFFTagSet.SMinSampleValue()); 2144 tags.add(new BaselineTIFFTagSet.Software()); 2145 tags.add(new BaselineTIFFTagSet.StripByteCounts()); 2146 tags.add(new BaselineTIFFTagSet.StripOffsets()); 2147 tags.add(new BaselineTIFFTagSet.SubfileType()); 2148 tags.add(new BaselineTIFFTagSet.T4Options()); 2149 tags.add(new BaselineTIFFTagSet.T6Options()); 2150 tags.add(new BaselineTIFFTagSet.TargetPrinter()); 2151 tags.add(new BaselineTIFFTagSet.Threshholding()); 2152 tags.add(new BaselineTIFFTagSet.TileByteCounts()); 2153 tags.add(new BaselineTIFFTagSet.TileOffsets()); 2154 tags.add(new BaselineTIFFTagSet.TileLength()); 2155 tags.add(new BaselineTIFFTagSet.TileWidth()); 2156 tags.add(new BaselineTIFFTagSet.TransferFunction()); 2157 tags.add(new BaselineTIFFTagSet.TransferRange()); 2158 tags.add(new BaselineTIFFTagSet.WhitePoint()); 2159 tags.add(new BaselineTIFFTagSet.XPosition()); 2160 tags.add(new BaselineTIFFTagSet.XResolution()); 2161 tags.add(new BaselineTIFFTagSet.YCbCrCoefficients()); 2162 tags.add(new BaselineTIFFTagSet.YCbCrPositioning()); 2163 tags.add(new BaselineTIFFTagSet.YCbCrSubSampling()); 2164 tags.add(new BaselineTIFFTagSet.YPosition()); 2165 tags.add(new BaselineTIFFTagSet.YResolution()); 2166 } 2167 2168 private BaselineTIFFTagSet() { 2169 super(tags); 2170 } 2171 2172 /** 2173 * Returns a shared instance of a {@code BaselineTIFFTagSet}. 2174 * 2175 * @return a {@code BaselineTIFFTagSet} instance. 2176 */ 2177 public synchronized static BaselineTIFFTagSet getInstance() { 2178 if (theInstance == null) { 2179 initTags(); 2180 theInstance = new BaselineTIFFTagSet(); 2181 tags = null; 2182 } 2183 return theInstance; 2184 } 2185 }