1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.imaging.formats.tiff.constants;
18
19 import java.util.Arrays;
20 import java.util.Collections;
21 import java.util.List;
22
23 import org.apache.commons.imaging.common.BinaryConstant;
24 import org.apache.commons.imaging.formats.tiff.taginfos.TagInfo;
25 import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoByte;
26 import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoBytes;
27 import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoFloat;
28 import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoLong;
29 import org.apache.commons.imaging.formats.tiff.taginfos.TagInfoUndefineds;
30
31
32
33
34 public final class MicrosoftHdPhotoTagConstants {
35
36
37
38
39 public static final TagInfoBytes EXIF_TAG_PIXEL_FORMAT = new TagInfoBytes("PixelFormat", 0xbc01, 16, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
40 public static final BinaryConstant PIXEL_FORMAT_VALUE_BLACK_AND_WHITE = createMicrosoftHdPhotoGuidEndingWith((byte) 0x05);
41 public static final BinaryConstant PIXEL_FORMAT_VALUE_8_BIT_GRAY = createMicrosoftHdPhotoGuidEndingWith((byte) 0x08);
42 public static final BinaryConstant PIXEL_FORMAT_VALUE_16_BIT_BGR555 = createMicrosoftHdPhotoGuidEndingWith((byte) 0x9);
43 public static final BinaryConstant PIXEL_FORMAT_VALUE_16_BIT_BGR565 = createMicrosoftHdPhotoGuidEndingWith((byte) 0xa);
44 public static final BinaryConstant PIXEL_FORMAT_VALUE_16_BIT_GRAY = createMicrosoftHdPhotoGuidEndingWith((byte) 0xb);
45 public static final BinaryConstant PIXEL_FORMAT_VALUE_24_BIT_BGR = createMicrosoftHdPhotoGuidEndingWith((byte) 0xc);
46 public static final BinaryConstant PIXEL_FORMAT_VALUE_24_BIT_RGB = createMicrosoftHdPhotoGuidEndingWith((byte) 0xd);
47 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_BGR = createMicrosoftHdPhotoGuidEndingWith((byte) 0xe);
48 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_BGRA = createMicrosoftHdPhotoGuidEndingWith((byte) 0xf);
49 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_PBGRA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x10);
50 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_GRAY_FLOAT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x11);
51 public static final BinaryConstant PIXEL_FORMAT_VALUE_48_BIT_RGB_FIXED_POINT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x12);
52 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_BGR101010 = createMicrosoftHdPhotoGuidEndingWith((byte) 0x13);
53 public static final BinaryConstant PIXEL_FORMAT_VALUE_48_BIT_RGB = createMicrosoftHdPhotoGuidEndingWith((byte) 0x15);
54 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_RGBA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x16);
55 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_PRGBA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x17);
56 public static final BinaryConstant PIXEL_FORMAT_VALUE_96_BIT_RGB_FIXED_POINT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x18);
57 public static final BinaryConstant PIXEL_FORMAT_VALUE_128_BIT_RGBA_FLOAT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x19);
58 public static final BinaryConstant PIXEL_FORMAT_VALUE_128_BIT_PRGBA_FLOAT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x1a);
59 public static final BinaryConstant PIXEL_FORMAT_VALUE_128_BIT_RGB_FLOAT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x1b);
60 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_CMYK = createMicrosoftHdPhotoGuidEndingWith((byte) 0x1c);
61 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_RGBA_FIXED_POINT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x1d);
62 public static final BinaryConstant PIXEL_FORMAT_VALUE_128_BIT_RGBA_FIXED_POINT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x1e);
63 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_CMYK = createMicrosoftHdPhotoGuidEndingWith((byte) 0x1f);
64 public static final BinaryConstant PIXEL_FORMAT_VALUE_24_BIT_3_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x20);
65 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_4_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x21);
66 public static final BinaryConstant PIXEL_FORMAT_VALUE_40_BIT_5_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x22);
67 public static final BinaryConstant PIXEL_FORMAT_VALUE_48_BIT_6_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x23);
68 public static final BinaryConstant PIXEL_FORMAT_VALUE_56_BIT_7_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x24);
69 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_8_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x25);
70 public static final BinaryConstant PIXEL_FORMAT_VALUE_48_BIT_3_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x26);
71 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_4_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x27);
72 public static final BinaryConstant PIXEL_FORMAT_VALUE_80_BIT_5_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x28);
73 public static final BinaryConstant PIXEL_FORMAT_VALUE_96_BIT_6_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x29);
74 public static final BinaryConstant PIXEL_FORMAT_VALUE_112_BIT_7_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x2a);
75 public static final BinaryConstant PIXEL_FORMAT_VALUE_128_BIT_8_CHANNELS = createMicrosoftHdPhotoGuidEndingWith((byte) 0x2b);
76 public static final BinaryConstant PIXEL_FORMAT_VALUE_40_BIT_CMYK_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x2c);
77 public static final BinaryConstant PIXEL_FORMAT_VALUE_80_BIT_CMYK_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x2d);
78 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_3_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x2e);
79 public static final BinaryConstant PIXEL_FORMAT_VALUE_40_BIT_4_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x2f);
80 public static final BinaryConstant PIXEL_FORMAT_VALUE_48_BIT_5_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x30);
81 public static final BinaryConstant PIXEL_FORMAT_VALUE_56_BIT_6_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x31);
82 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_7_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x32);
83 public static final BinaryConstant PIXEL_FORMAT_VALUE_72_BIT_8_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x33);
84 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_3_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x34);
85 public static final BinaryConstant PIXEL_FORMAT_VALUE_80_BIT_4_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x35);
86 public static final BinaryConstant PIXEL_FORMAT_VALUE_96_BIT_5_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x36);
87 public static final BinaryConstant PIXEL_FORMAT_VALUE_112_BIT_6_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x37);
88 public static final BinaryConstant PIXEL_FORMAT_VALUE_128_BIT_7_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x38);
89 public static final BinaryConstant PIXEL_FORMAT_VALUE_144_BIT_8_CHANNELS_ALPHA = createMicrosoftHdPhotoGuidEndingWith((byte) 0x39);
90 public static final BinaryConstant PIXEL_FORMAT_VALUE_64_BIT_RGBA_HALF = createMicrosoftHdPhotoGuidEndingWith((byte) 0x3a);
91 public static final BinaryConstant PIXEL_FORMAT_VALUE_48_BIT_RGB_HALF = createMicrosoftHdPhotoGuidEndingWith((byte) 0x3b);
92 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_RGBE = createMicrosoftHdPhotoGuidEndingWith((byte) 0x3d);
93 public static final BinaryConstant PIXEL_FORMAT_VALUE_16_BIT_GRAY_HALF = createMicrosoftHdPhotoGuidEndingWith((byte) 0x3e);
94 public static final BinaryConstant PIXEL_FORMAT_VALUE_32_BIT_GRAY_FIXED_POINT = createMicrosoftHdPhotoGuidEndingWith((byte) 0x3f);
95
96 public static final TagInfoLong EXIF_TAG_TRANSFORMATION = new TagInfoLong("Transformation", 0xbc02, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
97 public static final int TRANSFORMATION_VALUE_HORIZONTAL_NORMAL = 0;
98 public static final int TRANSFORMATION_VALUE_MIRROR_VERTICAL = 1;
99 public static final int TRANSFORMATION_VALUE_MIRROR_HORIZONTAL = 2;
100 public static final int TRANSFORMATION_VALUE_ROTATE_180 = 3;
101 public static final int TRANSFORMATION_VALUE_ROTATE_90_CW = 4;
102 public static final int TRANSFORMATION_VALUE_MIRROR_HORIZONTAL_AND_ROTATE_90_CW = 5;
103 public static final int TRANSFORMATION_VALUE_MIRROR_HORIZONTAL_AND_ROTATE_270_CW = 6;
104 public static final int TRANSFORMATION_VALUE_ROTATE_270_CW = 7;
105
106 public static final TagInfoLong EXIF_TAG_UNCOMPRESSED = new TagInfoLong("Uncompressed", 0xbc03, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
107 public static final int UNCOMPRESSED_VALUE_NO = 0;
108 public static final int UNCOMPRESSED_VALUE_YES = 1;
109
110 public static final TagInfoLong EXIF_TAG_IMAGE_TYPE = new TagInfoLong("ImageType", 0xbc04, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
111
112 public static final TagInfoLong EXIF_TAG_IMAGE_WIDTH = new TagInfoLong("ImageWidth", 0xbc80, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
113
114 public static final TagInfoLong EXIF_TAG_IMAGE_HEIGHT = new TagInfoLong("ImageHeight", 0xbc81, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
115
116 public static final TagInfoFloat EXIF_TAG_WIDTH_RESOLUTION = new TagInfoFloat("WidthResolution", 0xbc82, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
117
118 public static final TagInfoFloat EXIF_TAG_HEIGHT_RESOLUTION = new TagInfoFloat("HeightResolution", 0xbc83, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
119
120
121 public static final TagInfoLong EXIF_TAG_IMAGE_OFFSET = new TagInfoLong("ImageOffset", 0xbcc0, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
122
123 public static final TagInfoLong EXIF_TAG_IMAGE_BYTE_COUNT = new TagInfoLong("ImageByteCount", 0xbcc1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
124
125
126 public static final TagInfoLong EXIF_TAG_ALPHA_OFFSET = new TagInfoLong("AlphaOffset", 0xbcc2, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
127
128 public static final TagInfoLong EXIF_TAG_ALPHA_BYTE_COUNT = new TagInfoLong("AlphaByteCount", 0xbcc3, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
129
130 public static final TagInfoByte EXIF_TAG_IMAGE_DATA_DISCARD = new TagInfoByte("ImageDataDiscard", 0xbcc4, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
131 public static final int IMAGE_DATA_DISCARD_VALUE_FULL_RESOLUTION = 0;
132 public static final int IMAGE_DATA_DISCARD_VALUE_FLEXBITS_DISCARDED = 1;
133 public static final int IMAGE_DATA_DISCARD_VALUE_HIGH_PASS_FREQUENCY_DATA_DISCARDED = 2;
134 public static final int IMAGE_DATA_DISCARD_VALUE_HIGHPASS_AND_LOW_PASS_FREQUENCY_DATA_DISCARDED = 3;
135
136 public static final TagInfoByte EXIF_TAG_ALPHA_DATA_DISCARD = new TagInfoByte("AlphaDataDiscard", 0xbcc5, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
137 public static final int ALPHA_DATA_DISCARD_VALUE_FULL_RESOLUTION = 0;
138 public static final int ALPHA_DATA_DISCARD_VALUE_FLEXBITS_DISCARDED = 1;
139 public static final int ALPHA_DATA_DISCARD_VALUE_HIGH_PASS_FREQUENCY_DATA_DISCARDED = 2;
140 public static final int ALPHA_DATA_DISCARD_VALUE_HIGHPASS_AND_LOW_PASS_FREQUENCY_DATA_DISCARDED = 3;
141
142 public static final TagInfoUndefineds EXIF_TAG_PADDING = new TagInfoUndefineds("Padding", 0xea1c, -1, TiffDirectoryType.EXIF_DIRECTORY_UNKNOWN);
143
144 public static final List<TagInfo> ALL_MICROSOFT_HD_PHOTO_TAGS = Collections
145 .unmodifiableList(Arrays.asList(EXIF_TAG_PIXEL_FORMAT, EXIF_TAG_TRANSFORMATION, EXIF_TAG_UNCOMPRESSED, EXIF_TAG_IMAGE_TYPE, EXIF_TAG_IMAGE_WIDTH,
146 EXIF_TAG_IMAGE_HEIGHT, EXIF_TAG_WIDTH_RESOLUTION, EXIF_TAG_HEIGHT_RESOLUTION, EXIF_TAG_IMAGE_OFFSET, EXIF_TAG_IMAGE_BYTE_COUNT,
147 EXIF_TAG_ALPHA_OFFSET, EXIF_TAG_ALPHA_BYTE_COUNT, EXIF_TAG_IMAGE_DATA_DISCARD, EXIF_TAG_ALPHA_DATA_DISCARD, EXIF_TAG_PADDING));
148
149 private static BinaryConstant createMicrosoftHdPhotoGuidEndingWith(final byte end) {
150 return new BinaryConstant(new byte[] { (byte) 0x24, (byte) 0xC3, (byte) 0xDD, (byte) 0x6F, (byte) 0x03, (byte) 0x4E, (byte) 0xFE, (byte) 0x4B,
151 (byte) 0xB1, (byte) 0x85, (byte) 0x3D, (byte) 0x77, (byte) 0x76, (byte) 0x8D, (byte) 0xC9, end });
152 }
153
154 private MicrosoftHdPhotoTagConstants() {
155 }
156 }