summaryrefslogtreecommitdiff
path: root/python/examples/kaitai/icc_4.py
diff options
context:
space:
mode:
authorXusheng <xusheng@vector35.com>2021-07-01 12:34:30 +0800
committerXusheng Li <xushengli@protonmail.com>2021-07-05 10:11:47 +0800
commit13ff200ba134b8704f37eca99c42b70dab0d17dc (patch)
tree876b3db3c53f704b31152aeaede1f2edc9d27b24 /python/examples/kaitai/icc_4.py
parent4039a800349dcd587833d3e27d9137e4649818f4 (diff)
Remove snippet and kaitai plugin. Note their individual links.
Diffstat (limited to 'python/examples/kaitai/icc_4.py')
-rw-r--r--python/examples/kaitai/icc_4.py3369
1 files changed, 0 insertions, 3369 deletions
diff --git a/python/examples/kaitai/icc_4.py b/python/examples/kaitai/icc_4.py
deleted file mode 100644
index 4597e474..00000000
--- a/python/examples/kaitai/icc_4.py
+++ /dev/null
@@ -1,3369 +0,0 @@
-# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
-
-from pkg_resources import parse_version
-from .kaitaistruct import __version__ as ks_version, KaitaiStruct, KaitaiStream, BytesIO
-import collections
-from enum import Enum
-
-
-if parse_version(ks_version) < parse_version('0.7'):
- raise Exception("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s" % (ks_version))
-
-class Icc4(KaitaiStruct):
- SEQ_FIELDS = ["header", "tag_table"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['header']['start'] = self._io.pos()
- self.header = self._root.ProfileHeader(self._io, self, self._root)
- self.header._read()
- self._debug['header']['end'] = self._io.pos()
- self._debug['tag_table']['start'] = self._io.pos()
- self.tag_table = self._root.TagTable(self._io, self, self._root)
- self.tag_table._read()
- self._debug['tag_table']['end'] = self._io.pos()
-
- class U8Fixed8Number(KaitaiStruct):
- SEQ_FIELDS = ["number"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['number']['start'] = self._io.pos()
- self.number = self._io.read_bytes(2)
- self._debug['number']['end'] = self._io.pos()
-
-
- class U16Fixed16Number(KaitaiStruct):
- SEQ_FIELDS = ["number"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['number']['start'] = self._io.pos()
- self.number = self._io.read_bytes(4)
- self._debug['number']['end'] = self._io.pos()
-
-
- class StandardIlluminantEncoding(KaitaiStruct):
-
- class StandardIlluminantEncodings(Enum):
- unknown = 0
- d50 = 1
- d65 = 2
- d93 = 3
- f2 = 4
- d55 = 5
- a = 6
- equi_power = 7
- f8 = 8
- SEQ_FIELDS = ["standard_illuminant_encoding"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['standard_illuminant_encoding']['start'] = self._io.pos()
- self.standard_illuminant_encoding = KaitaiStream.resolve_enum(self._root.StandardIlluminantEncoding.StandardIlluminantEncodings, self._io.read_u4be())
- self._debug['standard_illuminant_encoding']['end'] = self._io.pos()
-
-
- class ProfileHeader(KaitaiStruct):
-
- class CmmSignatures(Enum):
- the_imaging_factory_cmm = 858931796
- agfa_cmm = 1094929747
- adobe_cmm = 1094992453
- color_gear_cmm = 1128484179
- logosync_cmm = 1147629395
- efi_cmm = 1162234144
- exact_scan_cmm = 1163411779
- fuji_film_cmm = 1179000864
- harlequin_rip_cmm = 1212370253
- heidelberg_cmm = 1212435744
- kodak_cmm = 1262701907
- konica_minolta_cmm = 1296256324
- device_link_cmm = 1380404563
- sample_icc_cmm = 1397310275
- mutoh_cmm = 1397311310
- toshiba_cmm = 1413696845
- color_gear_cmm_lite = 1430471501
- color_gear_cmm_c = 1430474067
- windows_color_system_cmm = 1464029984
- ware_to_go_cmm = 1465141024
- apple_cmm = 1634758764
- argyll_cms_cmm = 1634887532
- little_cms_cmm = 1818455411
- zoran_cmm = 2053320752
-
- class PrimaryPlatforms(Enum):
- apple_computer_inc = 1095782476
- microsoft_corporation = 1297303124
- silicon_graphics_inc = 1397180704
- sun_microsystems = 1398099543
-
- class ProfileClasses(Enum):
- abstract_profile = 1633842036
- device_link_profile = 1818848875
- display_device_profile = 1835955314
- named_color_profile = 1852662636
- output_device_profile = 1886549106
- input_device_profile = 1935896178
- color_space_profile = 1936744803
-
- class RenderingIntents(Enum):
- perceptual = 0
- media_relative_colorimetric = 1
- saturation = 2
- icc_absolute_colorimetric = 3
-
- class DataColourSpaces(Enum):
- two_colour = 843271250
- three_colour = 860048466
- four_colour = 876825682
- five_colour = 893602898
- six_colour = 910380114
- seven_colour = 927157330
- eight_colour = 943934546
- nine_colour = 960711762
- ten_colour = 1094929490
- eleven_colour = 1111706706
- twelve_colour = 1128483922
- cmy = 1129142560
- cmyk = 1129142603
- thirteen_colour = 1145261138
- fourteen_colour = 1162038354
- fifteen_colour = 1178815570
- gray = 1196573017
- hls = 1212961568
- hsv = 1213421088
- cielab_or_pcslab = 1281450528
- cieluv = 1282766368
- rgb = 1380401696
- nciexyz_or_pcsxyz = 1482250784
- ycbcr = 1497588338
- cieyxy = 1501067552
- SEQ_FIELDS = ["size", "preferred_cmm_type", "version", "device_class", "color_space", "pcs", "creation_date_time", "file_signature", "primary_platform", "profile_flags", "device_manufacturer", "device_model", "device_attributes", "rendering_intent", "nciexyz_values_of_illuminant_of_pcs", "creator", "identifier", "reserved_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['size']['start'] = self._io.pos()
- self.size = self._io.read_u4be()
- self._debug['size']['end'] = self._io.pos()
- self._debug['preferred_cmm_type']['start'] = self._io.pos()
- self.preferred_cmm_type = KaitaiStream.resolve_enum(self._root.ProfileHeader.CmmSignatures, self._io.read_u4be())
- self._debug['preferred_cmm_type']['end'] = self._io.pos()
- self._debug['version']['start'] = self._io.pos()
- self.version = self._root.ProfileHeader.VersionField(self._io, self, self._root)
- self.version._read()
- self._debug['version']['end'] = self._io.pos()
- self._debug['device_class']['start'] = self._io.pos()
- self.device_class = KaitaiStream.resolve_enum(self._root.ProfileHeader.ProfileClasses, self._io.read_u4be())
- self._debug['device_class']['end'] = self._io.pos()
- self._debug['color_space']['start'] = self._io.pos()
- self.color_space = KaitaiStream.resolve_enum(self._root.ProfileHeader.DataColourSpaces, self._io.read_u4be())
- self._debug['color_space']['end'] = self._io.pos()
- self._debug['pcs']['start'] = self._io.pos()
- self.pcs = (self._io.read_bytes(4)).decode(u"ASCII")
- self._debug['pcs']['end'] = self._io.pos()
- self._debug['creation_date_time']['start'] = self._io.pos()
- self.creation_date_time = self._root.DateTimeNumber(self._io, self, self._root)
- self.creation_date_time._read()
- self._debug['creation_date_time']['end'] = self._io.pos()
- self._debug['file_signature']['start'] = self._io.pos()
- self.file_signature = self._io.ensure_fixed_contents(b"\x61\x63\x73\x70")
- self._debug['file_signature']['end'] = self._io.pos()
- self._debug['primary_platform']['start'] = self._io.pos()
- self.primary_platform = KaitaiStream.resolve_enum(self._root.ProfileHeader.PrimaryPlatforms, self._io.read_u4be())
- self._debug['primary_platform']['end'] = self._io.pos()
- self._debug['profile_flags']['start'] = self._io.pos()
- self.profile_flags = self._root.ProfileHeader.ProfileFlags(self._io, self, self._root)
- self.profile_flags._read()
- self._debug['profile_flags']['end'] = self._io.pos()
- self._debug['device_manufacturer']['start'] = self._io.pos()
- self.device_manufacturer = self._root.DeviceManufacturer(self._io, self, self._root)
- self.device_manufacturer._read()
- self._debug['device_manufacturer']['end'] = self._io.pos()
- self._debug['device_model']['start'] = self._io.pos()
- self.device_model = (self._io.read_bytes(4)).decode(u"ASCII")
- self._debug['device_model']['end'] = self._io.pos()
- self._debug['device_attributes']['start'] = self._io.pos()
- self.device_attributes = self._root.DeviceAttributes(self._io, self, self._root)
- self.device_attributes._read()
- self._debug['device_attributes']['end'] = self._io.pos()
- self._debug['rendering_intent']['start'] = self._io.pos()
- self.rendering_intent = KaitaiStream.resolve_enum(self._root.ProfileHeader.RenderingIntents, self._io.read_u4be())
- self._debug['rendering_intent']['end'] = self._io.pos()
- self._debug['nciexyz_values_of_illuminant_of_pcs']['start'] = self._io.pos()
- self.nciexyz_values_of_illuminant_of_pcs = self._root.XyzNumber(self._io, self, self._root)
- self.nciexyz_values_of_illuminant_of_pcs._read()
- self._debug['nciexyz_values_of_illuminant_of_pcs']['end'] = self._io.pos()
- self._debug['creator']['start'] = self._io.pos()
- self.creator = self._root.DeviceManufacturer(self._io, self, self._root)
- self.creator._read()
- self._debug['creator']['end'] = self._io.pos()
- self._debug['identifier']['start'] = self._io.pos()
- self.identifier = self._io.read_bytes(16)
- self._debug['identifier']['end'] = self._io.pos()
- self._debug['reserved_data']['start'] = self._io.pos()
- self.reserved_data = self._io.read_bytes(28)
- self._debug['reserved_data']['end'] = self._io.pos()
-
- class VersionField(KaitaiStruct):
- SEQ_FIELDS = ["major", "minor", "bug_fix_level", "reserved"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['major']['start'] = self._io.pos()
- self.major = self._io.ensure_fixed_contents(b"\x04")
- self._debug['major']['end'] = self._io.pos()
- self._debug['minor']['start'] = self._io.pos()
- self.minor = self._io.read_bits_int(4)
- self._debug['minor']['end'] = self._io.pos()
- self._debug['bug_fix_level']['start'] = self._io.pos()
- self.bug_fix_level = self._io.read_bits_int(4)
- self._debug['bug_fix_level']['end'] = self._io.pos()
- self._io.align_to_byte()
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
-
-
- class ProfileFlags(KaitaiStruct):
- SEQ_FIELDS = ["embedded_profile", "profile_can_be_used_independently_of_embedded_colour_data", "other_flags"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['embedded_profile']['start'] = self._io.pos()
- self.embedded_profile = self._io.read_bits_int(1) != 0
- self._debug['embedded_profile']['end'] = self._io.pos()
- self._debug['profile_can_be_used_independently_of_embedded_colour_data']['start'] = self._io.pos()
- self.profile_can_be_used_independently_of_embedded_colour_data = self._io.read_bits_int(1) != 0
- self._debug['profile_can_be_used_independently_of_embedded_colour_data']['end'] = self._io.pos()
- self._debug['other_flags']['start'] = self._io.pos()
- self.other_flags = self._io.read_bits_int(30)
- self._debug['other_flags']['end'] = self._io.pos()
-
-
-
- class XyzNumber(KaitaiStruct):
- SEQ_FIELDS = ["x", "y", "z"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['x']['start'] = self._io.pos()
- self.x = self._io.read_bytes(4)
- self._debug['x']['end'] = self._io.pos()
- self._debug['y']['start'] = self._io.pos()
- self.y = self._io.read_bytes(4)
- self._debug['y']['end'] = self._io.pos()
- self._debug['z']['start'] = self._io.pos()
- self.z = self._io.read_bytes(4)
- self._debug['z']['end'] = self._io.pos()
-
-
- class DateTimeNumber(KaitaiStruct):
- SEQ_FIELDS = ["year", "month", "day", "hour", "minute", "second"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['year']['start'] = self._io.pos()
- self.year = self._io.read_u2be()
- self._debug['year']['end'] = self._io.pos()
- self._debug['month']['start'] = self._io.pos()
- self.month = self._io.read_u2be()
- self._debug['month']['end'] = self._io.pos()
- self._debug['day']['start'] = self._io.pos()
- self.day = self._io.read_u2be()
- self._debug['day']['end'] = self._io.pos()
- self._debug['hour']['start'] = self._io.pos()
- self.hour = self._io.read_u2be()
- self._debug['hour']['end'] = self._io.pos()
- self._debug['minute']['start'] = self._io.pos()
- self.minute = self._io.read_u2be()
- self._debug['minute']['end'] = self._io.pos()
- self._debug['second']['start'] = self._io.pos()
- self.second = self._io.read_u2be()
- self._debug['second']['end'] = self._io.pos()
-
-
- class Response16Number(KaitaiStruct):
- SEQ_FIELDS = ["number", "reserved", "measurement_value"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['number']['start'] = self._io.pos()
- self.number = self._io.read_u4be()
- self._debug['number']['end'] = self._io.pos()
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['measurement_value']['start'] = self._io.pos()
- self.measurement_value = self._root.S15Fixed16Number(self._io, self, self._root)
- self.measurement_value._read()
- self._debug['measurement_value']['end'] = self._io.pos()
-
-
- class U1Fixed15Number(KaitaiStruct):
- SEQ_FIELDS = ["number"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['number']['start'] = self._io.pos()
- self.number = self._io.read_bytes(2)
- self._debug['number']['end'] = self._io.pos()
-
-
- class TagTable(KaitaiStruct):
- SEQ_FIELDS = ["tag_count", "tags"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_count']['start'] = self._io.pos()
- self.tag_count = self._io.read_u4be()
- self._debug['tag_count']['end'] = self._io.pos()
- self._debug['tags']['start'] = self._io.pos()
- self.tags = [None] * (self.tag_count)
- for i in range(self.tag_count):
- if not 'arr' in self._debug['tags']:
- self._debug['tags']['arr'] = []
- self._debug['tags']['arr'].append({'start': self._io.pos()})
- _t_tags = self._root.TagTable.TagDefinition(self._io, self, self._root)
- _t_tags._read()
- self.tags[i] = _t_tags
- self._debug['tags']['arr'][i]['end'] = self._io.pos()
-
- self._debug['tags']['end'] = self._io.pos()
-
- class TagDefinition(KaitaiStruct):
-
- class TagSignatures(Enum):
- a_to_b_0 = 1093812784
- a_to_b_1 = 1093812785
- a_to_b_2 = 1093812786
- b_to_a_0 = 1110589744
- b_to_a_1 = 1110589745
- b_to_a_2 = 1110589746
- b_to_d_0 = 1110590512
- b_to_d_1 = 1110590513
- b_to_d_2 = 1110590514
- b_to_d_3 = 1110590515
- d_to_b_0 = 1144144432
- d_to_b_1 = 1144144433
- d_to_b_2 = 1144144434
- d_to_b_3 = 1144144435
- blue_trc = 1649693251
- blue_matrix_column = 1649957210
- calibration_date_time = 1667329140
- chromatic_adaptation = 1667785060
- chromaticity = 1667789421
- colorimetric_intent_image_state = 1667852659
- colorant_table_out = 1668050804
- colorant_order = 1668051567
- colorant_table = 1668051572
- copyright = 1668313716
- profile_description = 1684370275
- device_model_desc = 1684890724
- device_mfg_desc = 1684893284
- green_trc = 1733579331
- green_matrix_column = 1733843290
- gamut = 1734438260
- gray_trc = 1800688195
- luminance = 1819635049
- measurement = 1835360627
- named_color_2 = 1852009522
- preview_0 = 1886545200
- preview_1 = 1886545201
- preview_2 = 1886545202
- profile_sequence = 1886610801
- profile_sequence_identifier = 1886611812
- red_trc = 1918128707
- red_matrix_column = 1918392666
- output_response = 1919251312
- perceptual_rendering_intent_gamut = 1919510320
- saturation_rendering_intent_gamut = 1919510322
- char_target = 1952543335
- technology = 1952801640
- viewing_conditions = 1986618743
- viewing_cond_desc = 1987405156
- media_white_point = 2004119668
-
- class TagTypeSignatures(Enum):
- xyz_type = 1482250784
- colorant_table_type = 1668051572
- curve_type = 1668641398
- data_type = 1684108385
- date_time_type = 1685350765
- multi_function_a_to_b_table_type = 1832993312
- multi_function_b_to_a_table_type = 1833058592
- measurement_type = 1835360627
- multi_function_table_with_one_byte_precision_type = 1835430961
- multi_function_table_with_two_byte_precision_type = 1835430962
- multi_localized_unicode_type = 1835824483
- multi_process_elements_type = 1836082548
- named_color_2_type = 1852009522
- parametric_curve_type = 1885434465
- profile_sequence_desc_type = 1886610801
- profile_sequence_identifier_type = 1886611812
- response_curve_set_16_type = 1919120178
- s_15_fixed_16_array_type = 1936077618
- signature_type = 1936287520
- text_type = 1952807028
- u_16_fixed_16_array_type = 1969632050
- u_int_8_array_type = 1969827896
- u_int_16_array_type = 1969828150
- u_int_32_array_type = 1969828658
- u_int_64_array_type = 1969829428
- viewing_conditions_type = 1986618743
-
- class MultiProcessElementsTypes(Enum):
- bacs_element_type = 1648444243
- clut_element_type = 1668052340
- one_dimensional_curves_type = 1668641382
- eacs_element_type = 1698775891
- matrix_element_type = 1835103334
- curve_set_element_table_type = 1835428980
- formula_curve_segments_type = 1885434470
- sampled_curve_segment_type = 1935764838
- SEQ_FIELDS = ["tag_signature", "offset_to_data_element", "size_of_data_element"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_signature']['start'] = self._io.pos()
- self.tag_signature = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagSignatures, self._io.read_u4be())
- self._debug['tag_signature']['end'] = self._io.pos()
- self._debug['offset_to_data_element']['start'] = self._io.pos()
- self.offset_to_data_element = self._io.read_u4be()
- self._debug['offset_to_data_element']['end'] = self._io.pos()
- self._debug['size_of_data_element']['start'] = self._io.pos()
- self.size_of_data_element = self._io.read_u4be()
- self._debug['size_of_data_element']['end'] = self._io.pos()
-
- class BlueMatrixColumnTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.xyz_type:
- self.tag_data = self._root.TagTable.TagDefinition.XyzType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class DeviceMfgDescTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_localized_unicode_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiLocalizedUnicodeType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class NamedColor2Type(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "vendor_specific_flag", "count_of_named_colours", "number_of_device_coordinates_for_each_named_colour", "prefix_for_each_colour_name", "prefix_for_each_colour_name_padding", "suffix_for_each_colour_name", "suffix_for_each_colour_name_padding", "named_colour_definitions"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['vendor_specific_flag']['start'] = self._io.pos()
- self.vendor_specific_flag = self._io.read_u4be()
- self._debug['vendor_specific_flag']['end'] = self._io.pos()
- self._debug['count_of_named_colours']['start'] = self._io.pos()
- self.count_of_named_colours = self._io.read_u4be()
- self._debug['count_of_named_colours']['end'] = self._io.pos()
- self._debug['number_of_device_coordinates_for_each_named_colour']['start'] = self._io.pos()
- self.number_of_device_coordinates_for_each_named_colour = self._io.read_u4be()
- self._debug['number_of_device_coordinates_for_each_named_colour']['end'] = self._io.pos()
- self._debug['prefix_for_each_colour_name']['start'] = self._io.pos()
- self.prefix_for_each_colour_name = (self._io.read_bytes_term(0, False, True, True)).decode(u"ASCII")
- self._debug['prefix_for_each_colour_name']['end'] = self._io.pos()
- self._debug['prefix_for_each_colour_name_padding']['start'] = self._io.pos()
- self.prefix_for_each_colour_name_padding = [None] * ((32 - len(self.prefix_for_each_colour_name)))
- for i in range((32 - len(self.prefix_for_each_colour_name))):
- if not 'arr' in self._debug['prefix_for_each_colour_name_padding']:
- self._debug['prefix_for_each_colour_name_padding']['arr'] = []
- self._debug['prefix_for_each_colour_name_padding']['arr'].append({'start': self._io.pos()})
- self.prefix_for_each_colour_name_padding = self._io.ensure_fixed_contents(b"\x00")
- self._debug['prefix_for_each_colour_name_padding']['arr'][i]['end'] = self._io.pos()
-
- self._debug['prefix_for_each_colour_name_padding']['end'] = self._io.pos()
- self._debug['suffix_for_each_colour_name']['start'] = self._io.pos()
- self.suffix_for_each_colour_name = (self._io.read_bytes_term(0, False, True, True)).decode(u"ASCII")
- self._debug['suffix_for_each_colour_name']['end'] = self._io.pos()
- self._debug['suffix_for_each_colour_name_padding']['start'] = self._io.pos()
- self.suffix_for_each_colour_name_padding = [None] * ((32 - len(self.suffix_for_each_colour_name)))
- for i in range((32 - len(self.suffix_for_each_colour_name))):
- if not 'arr' in self._debug['suffix_for_each_colour_name_padding']:
- self._debug['suffix_for_each_colour_name_padding']['arr'] = []
- self._debug['suffix_for_each_colour_name_padding']['arr'].append({'start': self._io.pos()})
- self.suffix_for_each_colour_name_padding = self._io.ensure_fixed_contents(b"\x00")
- self._debug['suffix_for_each_colour_name_padding']['arr'][i]['end'] = self._io.pos()
-
- self._debug['suffix_for_each_colour_name_padding']['end'] = self._io.pos()
- self._debug['named_colour_definitions']['start'] = self._io.pos()
- self.named_colour_definitions = [None] * (self.count_of_named_colours)
- for i in range(self.count_of_named_colours):
- if not 'arr' in self._debug['named_colour_definitions']:
- self._debug['named_colour_definitions']['arr'] = []
- self._debug['named_colour_definitions']['arr'].append({'start': self._io.pos()})
- _t_named_colour_definitions = self._root.TagTable.TagDefinition.NamedColor2Type.NamedColourDefinition(self._io, self, self._root)
- _t_named_colour_definitions._read()
- self.named_colour_definitions[i] = _t_named_colour_definitions
- self._debug['named_colour_definitions']['arr'][i]['end'] = self._io.pos()
-
- self._debug['named_colour_definitions']['end'] = self._io.pos()
-
- class NamedColourDefinition(KaitaiStruct):
- SEQ_FIELDS = ["root_name", "root_name_padding", "pcs_coordinates", "device_coordinates"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['root_name']['start'] = self._io.pos()
- self.root_name = (self._io.read_bytes_term(0, False, True, True)).decode(u"ASCII")
- self._debug['root_name']['end'] = self._io.pos()
- self._debug['root_name_padding']['start'] = self._io.pos()
- self.root_name_padding = [None] * ((32 - len(self.root_name)))
- for i in range((32 - len(self.root_name))):
- if not 'arr' in self._debug['root_name_padding']:
- self._debug['root_name_padding']['arr'] = []
- self._debug['root_name_padding']['arr'].append({'start': self._io.pos()})
- self.root_name_padding = self._io.ensure_fixed_contents(b"\x00")
- self._debug['root_name_padding']['arr'][i]['end'] = self._io.pos()
-
- self._debug['root_name_padding']['end'] = self._io.pos()
- self._debug['pcs_coordinates']['start'] = self._io.pos()
- self.pcs_coordinates = self._io.read_bytes(6)
- self._debug['pcs_coordinates']['end'] = self._io.pos()
- if self._parent.number_of_device_coordinates_for_each_named_colour > 0:
- self._debug['device_coordinates']['start'] = self._io.pos()
- self.device_coordinates = [None] * (self._parent.count_of_named_colours)
- for i in range(self._parent.count_of_named_colours):
- if not 'arr' in self._debug['device_coordinates']:
- self._debug['device_coordinates']['arr'] = []
- self._debug['device_coordinates']['arr'].append({'start': self._io.pos()})
- self.device_coordinates[i] = self._io.read_u2be()
- self._debug['device_coordinates']['arr'][i]['end'] = self._io.pos()
-
- self._debug['device_coordinates']['end'] = self._io.pos()
-
-
-
-
- class ViewingConditionsTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.viewing_conditions_type:
- self.tag_data = self._root.TagTable.TagDefinition.ViewingConditionsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class BlueTrcTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.curve_type:
- self.tag_data = self._root.TagTable.TagDefinition.CurveType(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.parametric_curve_type:
- self.tag_data = self._root.TagTable.TagDefinition.ParametricCurveType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ResponseCurveSet16Type(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_channels", "count_of_measurement_types", "response_curve_structure_offsets", "response_curve_structures"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_channels']['start'] = self._io.pos()
- self.number_of_channels = self._io.read_u2be()
- self._debug['number_of_channels']['end'] = self._io.pos()
- self._debug['count_of_measurement_types']['start'] = self._io.pos()
- self.count_of_measurement_types = self._io.read_u2be()
- self._debug['count_of_measurement_types']['end'] = self._io.pos()
- self._debug['response_curve_structure_offsets']['start'] = self._io.pos()
- self.response_curve_structure_offsets = [None] * (self.count_of_measurement_types)
- for i in range(self.count_of_measurement_types):
- if not 'arr' in self._debug['response_curve_structure_offsets']:
- self._debug['response_curve_structure_offsets']['arr'] = []
- self._debug['response_curve_structure_offsets']['arr'].append({'start': self._io.pos()})
- self.response_curve_structure_offsets[i] = self._io.read_u4be()
- self._debug['response_curve_structure_offsets']['arr'][i]['end'] = self._io.pos()
-
- self._debug['response_curve_structure_offsets']['end'] = self._io.pos()
- self._debug['response_curve_structures']['start'] = self._io.pos()
- self.response_curve_structures = self._io.read_bytes_full()
- self._debug['response_curve_structures']['end'] = self._io.pos()
-
-
- class CurveType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_entries", "curve_values", "curve_value"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_entries']['start'] = self._io.pos()
- self.number_of_entries = self._io.read_u4be()
- self._debug['number_of_entries']['end'] = self._io.pos()
- if self.number_of_entries > 1:
- self._debug['curve_values']['start'] = self._io.pos()
- self.curve_values = [None] * (self.number_of_entries)
- for i in range(self.number_of_entries):
- if not 'arr' in self._debug['curve_values']:
- self._debug['curve_values']['arr'] = []
- self._debug['curve_values']['arr'].append({'start': self._io.pos()})
- self.curve_values[i] = self._io.read_u4be()
- self._debug['curve_values']['arr'][i]['end'] = self._io.pos()
-
- self._debug['curve_values']['end'] = self._io.pos()
-
- if self.number_of_entries == 1:
- self._debug['curve_value']['start'] = self._io.pos()
- self.curve_value = self._io.read_u1()
- self._debug['curve_value']['end'] = self._io.pos()
-
-
-
- class SaturationRenderingIntentGamutTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.signature_type:
- self.tag_data = self._root.TagTable.TagDefinition.SignatureType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class XyzType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "values"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['values']['start'] = self._io.pos()
- self.values = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['values']:
- self._debug['values']['arr'] = []
- self._debug['values']['arr'].append({'start': self._io.pos()})
- _t_values = self._root.XyzNumber(self._io, self, self._root)
- _t_values._read()
- self.values.append(_t_values)
- self._debug['values']['arr'][len(self.values) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['values']['end'] = self._io.pos()
-
-
- class Lut8Type(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_input_channels", "number_of_output_channels", "number_of_clut_grid_points", "padding", "encoded_e_parameters", "number_of_input_table_entries", "number_of_output_table_entries", "input_tables", "clut_values", "output_tables"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_input_channels']['start'] = self._io.pos()
- self.number_of_input_channels = self._io.read_u1()
- self._debug['number_of_input_channels']['end'] = self._io.pos()
- self._debug['number_of_output_channels']['start'] = self._io.pos()
- self.number_of_output_channels = self._io.read_u1()
- self._debug['number_of_output_channels']['end'] = self._io.pos()
- self._debug['number_of_clut_grid_points']['start'] = self._io.pos()
- self.number_of_clut_grid_points = self._io.read_u1()
- self._debug['number_of_clut_grid_points']['end'] = self._io.pos()
- self._debug['padding']['start'] = self._io.pos()
- self.padding = self._io.ensure_fixed_contents(b"\x00")
- self._debug['padding']['end'] = self._io.pos()
- self._debug['encoded_e_parameters']['start'] = self._io.pos()
- self.encoded_e_parameters = [None] * (9)
- for i in range(9):
- if not 'arr' in self._debug['encoded_e_parameters']:
- self._debug['encoded_e_parameters']['arr'] = []
- self._debug['encoded_e_parameters']['arr'].append({'start': self._io.pos()})
- self.encoded_e_parameters[i] = self._io.read_s4be()
- self._debug['encoded_e_parameters']['arr'][i]['end'] = self._io.pos()
-
- self._debug['encoded_e_parameters']['end'] = self._io.pos()
- self._debug['number_of_input_table_entries']['start'] = self._io.pos()
- self.number_of_input_table_entries = self._io.read_u4be()
- self._debug['number_of_input_table_entries']['end'] = self._io.pos()
- self._debug['number_of_output_table_entries']['start'] = self._io.pos()
- self.number_of_output_table_entries = self._io.read_u4be()
- self._debug['number_of_output_table_entries']['end'] = self._io.pos()
- self._debug['input_tables']['start'] = self._io.pos()
- self.input_tables = self._io.read_bytes((256 * self.number_of_input_channels))
- self._debug['input_tables']['end'] = self._io.pos()
- self._debug['clut_values']['start'] = self._io.pos()
- self.clut_values = self._io.read_bytes(((self.number_of_clut_grid_points ^ self.number_of_input_channels) * self.number_of_output_channels))
- self._debug['clut_values']['end'] = self._io.pos()
- self._debug['output_tables']['start'] = self._io.pos()
- self.output_tables = self._io.read_bytes((256 * self.number_of_output_channels))
- self._debug['output_tables']['end'] = self._io.pos()
-
-
- class BToA2Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_b_to_a_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutBToAType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class LutAToBType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_input_channels", "number_of_output_channels", "padding", "offset_to_first_b_curve", "offset_to_matrix", "offset_to_first_m_curve", "offset_to_clut", "offset_to_first_a_curve", "data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_input_channels']['start'] = self._io.pos()
- self.number_of_input_channels = self._io.read_u1()
- self._debug['number_of_input_channels']['end'] = self._io.pos()
- self._debug['number_of_output_channels']['start'] = self._io.pos()
- self.number_of_output_channels = self._io.read_u1()
- self._debug['number_of_output_channels']['end'] = self._io.pos()
- self._debug['padding']['start'] = self._io.pos()
- self.padding = self._io.ensure_fixed_contents(b"\x00\x00")
- self._debug['padding']['end'] = self._io.pos()
- self._debug['offset_to_first_b_curve']['start'] = self._io.pos()
- self.offset_to_first_b_curve = self._io.read_u4be()
- self._debug['offset_to_first_b_curve']['end'] = self._io.pos()
- self._debug['offset_to_matrix']['start'] = self._io.pos()
- self.offset_to_matrix = self._io.read_u4be()
- self._debug['offset_to_matrix']['end'] = self._io.pos()
- self._debug['offset_to_first_m_curve']['start'] = self._io.pos()
- self.offset_to_first_m_curve = self._io.read_u4be()
- self._debug['offset_to_first_m_curve']['end'] = self._io.pos()
- self._debug['offset_to_clut']['start'] = self._io.pos()
- self.offset_to_clut = self._io.read_u4be()
- self._debug['offset_to_clut']['end'] = self._io.pos()
- self._debug['offset_to_first_a_curve']['start'] = self._io.pos()
- self.offset_to_first_a_curve = self._io.read_u4be()
- self._debug['offset_to_first_a_curve']['end'] = self._io.pos()
- self._debug['data']['start'] = self._io.pos()
- self.data = self._io.read_bytes_full()
- self._debug['data']['end'] = self._io.pos()
-
-
- class BToA0Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_b_to_a_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutBToAType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class MediaWhitePointTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.xyz_type:
- self.tag_data = self._root.TagTable.TagDefinition.XyzType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class Lut16Type(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_input_channels", "number_of_output_channels", "number_of_clut_grid_points", "padding", "encoded_e_parameters", "number_of_input_table_entries", "number_of_output_table_entries", "input_tables", "clut_values", "output_tables"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_input_channels']['start'] = self._io.pos()
- self.number_of_input_channels = self._io.read_u1()
- self._debug['number_of_input_channels']['end'] = self._io.pos()
- self._debug['number_of_output_channels']['start'] = self._io.pos()
- self.number_of_output_channels = self._io.read_u1()
- self._debug['number_of_output_channels']['end'] = self._io.pos()
- self._debug['number_of_clut_grid_points']['start'] = self._io.pos()
- self.number_of_clut_grid_points = self._io.read_u1()
- self._debug['number_of_clut_grid_points']['end'] = self._io.pos()
- self._debug['padding']['start'] = self._io.pos()
- self.padding = self._io.ensure_fixed_contents(b"\x00")
- self._debug['padding']['end'] = self._io.pos()
- self._debug['encoded_e_parameters']['start'] = self._io.pos()
- self.encoded_e_parameters = [None] * (9)
- for i in range(9):
- if not 'arr' in self._debug['encoded_e_parameters']:
- self._debug['encoded_e_parameters']['arr'] = []
- self._debug['encoded_e_parameters']['arr'].append({'start': self._io.pos()})
- self.encoded_e_parameters[i] = self._io.read_s4be()
- self._debug['encoded_e_parameters']['arr'][i]['end'] = self._io.pos()
-
- self._debug['encoded_e_parameters']['end'] = self._io.pos()
- self._debug['number_of_input_table_entries']['start'] = self._io.pos()
- self.number_of_input_table_entries = self._io.read_u4be()
- self._debug['number_of_input_table_entries']['end'] = self._io.pos()
- self._debug['number_of_output_table_entries']['start'] = self._io.pos()
- self.number_of_output_table_entries = self._io.read_u4be()
- self._debug['number_of_output_table_entries']['end'] = self._io.pos()
- self._debug['input_tables']['start'] = self._io.pos()
- self.input_tables = self._io.read_bytes(((2 * self.number_of_input_channels) * self.number_of_input_table_entries))
- self._debug['input_tables']['end'] = self._io.pos()
- self._debug['clut_values']['start'] = self._io.pos()
- self.clut_values = self._io.read_bytes(((2 * (self.number_of_clut_grid_points ^ self.number_of_input_channels)) * self.number_of_output_channels))
- self._debug['clut_values']['end'] = self._io.pos()
- self._debug['output_tables']['start'] = self._io.pos()
- self.output_tables = self._io.read_bytes(((2 * self.number_of_output_channels) * self.number_of_output_table_entries))
- self._debug['output_tables']['end'] = self._io.pos()
-
-
- class PerceptualRenderingIntentGamutTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.signature_type:
- self.tag_data = self._root.TagTable.TagDefinition.SignatureType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class U16Fixed16ArrayType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "values"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['values']['start'] = self._io.pos()
- self.values = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['values']:
- self._debug['values']['arr'] = []
- self._debug['values']['arr'].append({'start': self._io.pos()})
- _t_values = self._root.U16Fixed16Number(self._io, self, self._root)
- _t_values._read()
- self.values.append(_t_values)
- self._debug['values']['arr'][len(self.values) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['values']['end'] = self._io.pos()
-
-
- class ColorantTableOutTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.colorant_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.ColorantTableType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class MeasurementTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.measurement_type:
- self.tag_data = self._root.TagTable.TagDefinition.MeasurementType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ProfileSequenceTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.profile_sequence_desc_type:
- self.tag_data = self._root.TagTable.TagDefinition.ProfileSequenceDescType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class TechnologyTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.signature_type:
- self.tag_data = self._root.TagTable.TagDefinition.SignatureType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class AToB0Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_a_to_b_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutAToBType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class DToB0Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_process_elements_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiProcessElementsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class OutputResponseTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.response_curve_set_16_type:
- self.tag_data = self._root.TagTable.TagDefinition.ResponseCurveSet16Type(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class GreenMatrixColumnTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.xyz_type:
- self.tag_data = self._root.TagTable.TagDefinition.XyzType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ProfileDescriptionTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_localized_unicode_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiLocalizedUnicodeType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class Preview1Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_b_to_a_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutBToAType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class RedTrcTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.curve_type:
- self.tag_data = self._root.TagTable.TagDefinition.CurveType(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.parametric_curve_type:
- self.tag_data = self._root.TagTable.TagDefinition.ParametricCurveType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class BToD0Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_process_elements_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiProcessElementsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class DToB1Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_process_elements_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiProcessElementsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class BToA1Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_b_to_a_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutBToAType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ParametricCurveType(KaitaiStruct):
-
- class ParametricCurveTypeFunctions(Enum):
- y_equals_x_to_power_of_g = 0
- cie_122_1996 = 1
- iec_61966_3 = 2
- iec_61966_2_1 = 3
- y_equals_ob_ax_plus_b_cb_to_power_of_g_plus_c = 4
- SEQ_FIELDS = ["reserved", "function_type", "reserved_2", "parameters"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['function_type']['start'] = self._io.pos()
- self.function_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.ParametricCurveType.ParametricCurveTypeFunctions, self._io.read_u2be())
- self._debug['function_type']['end'] = self._io.pos()
- self._debug['reserved_2']['start'] = self._io.pos()
- self.reserved_2 = self._io.ensure_fixed_contents(b"\x00\x00")
- self._debug['reserved_2']['end'] = self._io.pos()
- self._debug['parameters']['start'] = self._io.pos()
- _on = self.function_type
- if _on == self._root.TagTable.TagDefinition.ParametricCurveType.ParametricCurveTypeFunctions.cie_122_1996:
- self.parameters = self._root.TagTable.TagDefinition.ParametricCurveType.ParamsCie1221996(self._io, self, self._root)
- self.parameters._read()
- elif _on == self._root.TagTable.TagDefinition.ParametricCurveType.ParametricCurveTypeFunctions.iec_61966_3:
- self.parameters = self._root.TagTable.TagDefinition.ParametricCurveType.ParamsIec619663(self._io, self, self._root)
- self.parameters._read()
- elif _on == self._root.TagTable.TagDefinition.ParametricCurveType.ParametricCurveTypeFunctions.iec_61966_2_1:
- self.parameters = self._root.TagTable.TagDefinition.ParametricCurveType.ParamsIec6196621(self._io, self, self._root)
- self.parameters._read()
- elif _on == self._root.TagTable.TagDefinition.ParametricCurveType.ParametricCurveTypeFunctions.y_equals_ob_ax_plus_b_cb_to_power_of_g_plus_c:
- self.parameters = self._root.TagTable.TagDefinition.ParametricCurveType.ParamsYEqualsObAxPlusBCbToPowerOfGPlusC(self._io, self, self._root)
- self.parameters._read()
- elif _on == self._root.TagTable.TagDefinition.ParametricCurveType.ParametricCurveTypeFunctions.y_equals_x_to_power_of_g:
- self.parameters = self._root.TagTable.TagDefinition.ParametricCurveType.ParamsYEqualsXToPowerOfG(self._io, self, self._root)
- self.parameters._read()
- self._debug['parameters']['end'] = self._io.pos()
-
- class ParamsIec619663(KaitaiStruct):
- SEQ_FIELDS = ["g", "a", "b", "c"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['g']['start'] = self._io.pos()
- self.g = self._io.read_s4be()
- self._debug['g']['end'] = self._io.pos()
- self._debug['a']['start'] = self._io.pos()
- self.a = self._io.read_s4be()
- self._debug['a']['end'] = self._io.pos()
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_s4be()
- self._debug['b']['end'] = self._io.pos()
- self._debug['c']['start'] = self._io.pos()
- self.c = self._io.read_s4be()
- self._debug['c']['end'] = self._io.pos()
-
-
- class ParamsIec6196621(KaitaiStruct):
- SEQ_FIELDS = ["g", "a", "b", "c", "d"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['g']['start'] = self._io.pos()
- self.g = self._io.read_s4be()
- self._debug['g']['end'] = self._io.pos()
- self._debug['a']['start'] = self._io.pos()
- self.a = self._io.read_s4be()
- self._debug['a']['end'] = self._io.pos()
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_s4be()
- self._debug['b']['end'] = self._io.pos()
- self._debug['c']['start'] = self._io.pos()
- self.c = self._io.read_s4be()
- self._debug['c']['end'] = self._io.pos()
- self._debug['d']['start'] = self._io.pos()
- self.d = self._io.read_s4be()
- self._debug['d']['end'] = self._io.pos()
-
-
- class ParamsYEqualsXToPowerOfG(KaitaiStruct):
- SEQ_FIELDS = ["g"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['g']['start'] = self._io.pos()
- self.g = self._io.read_s4be()
- self._debug['g']['end'] = self._io.pos()
-
-
- class ParamsYEqualsObAxPlusBCbToPowerOfGPlusC(KaitaiStruct):
- SEQ_FIELDS = ["g", "a", "b", "c", "d", "e", "f"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['g']['start'] = self._io.pos()
- self.g = self._io.read_s4be()
- self._debug['g']['end'] = self._io.pos()
- self._debug['a']['start'] = self._io.pos()
- self.a = self._io.read_s4be()
- self._debug['a']['end'] = self._io.pos()
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_s4be()
- self._debug['b']['end'] = self._io.pos()
- self._debug['c']['start'] = self._io.pos()
- self.c = self._io.read_s4be()
- self._debug['c']['end'] = self._io.pos()
- self._debug['d']['start'] = self._io.pos()
- self.d = self._io.read_s4be()
- self._debug['d']['end'] = self._io.pos()
- self._debug['e']['start'] = self._io.pos()
- self.e = self._io.read_s4be()
- self._debug['e']['end'] = self._io.pos()
- self._debug['f']['start'] = self._io.pos()
- self.f = self._io.read_s4be()
- self._debug['f']['end'] = self._io.pos()
-
-
- class ParamsCie1221996(KaitaiStruct):
- SEQ_FIELDS = ["g", "a", "b"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['g']['start'] = self._io.pos()
- self.g = self._io.read_s4be()
- self._debug['g']['end'] = self._io.pos()
- self._debug['a']['start'] = self._io.pos()
- self.a = self._io.read_s4be()
- self._debug['a']['end'] = self._io.pos()
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_s4be()
- self._debug['b']['end'] = self._io.pos()
-
-
-
- class ChromaticityTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.chromaticity_type:
- self.tag_data = self._root.TagTable.TagDefinition.ChromaticityType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ChromaticAdaptationTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.s_15_fixed_16_array_type:
- self.tag_data = self._root.TagTable.TagDefinition.S15Fixed16ArrayType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class MeasurementType(KaitaiStruct):
-
- class StandardObserverEncodings(Enum):
- unknown = 0
- cie_1931_standard_colorimetric_observer = 1
- cie_1964_standard_colorimetric_observer = 2
-
- class MeasurementGeometryEncodings(Enum):
- unknown = 0
- zero_degrees_to_45_degrees_or_45_degrees_to_zero_degrees = 1
- zero_degrees_to_d_degrees_or_d_degrees_to_zero_degrees = 2
-
- class MeasurementFlareEncodings(Enum):
- zero_percent = 0
- one_hundred_percent = 65536
- SEQ_FIELDS = ["reserved", "standard_observer_encoding", "nciexyz_tristimulus_values_for_measurement_backing", "measurement_geometry_encoding", "measurement_flare_encoding", "standard_illuminant_encoding"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['standard_observer_encoding']['start'] = self._io.pos()
- self.standard_observer_encoding = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.MeasurementType.StandardObserverEncodings, self._io.read_u4be())
- self._debug['standard_observer_encoding']['end'] = self._io.pos()
- self._debug['nciexyz_tristimulus_values_for_measurement_backing']['start'] = self._io.pos()
- self.nciexyz_tristimulus_values_for_measurement_backing = self._root.XyzNumber(self._io, self, self._root)
- self.nciexyz_tristimulus_values_for_measurement_backing._read()
- self._debug['nciexyz_tristimulus_values_for_measurement_backing']['end'] = self._io.pos()
- self._debug['measurement_geometry_encoding']['start'] = self._io.pos()
- self.measurement_geometry_encoding = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.MeasurementType.MeasurementGeometryEncodings, self._io.read_u4be())
- self._debug['measurement_geometry_encoding']['end'] = self._io.pos()
- self._debug['measurement_flare_encoding']['start'] = self._io.pos()
- self.measurement_flare_encoding = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.MeasurementType.MeasurementFlareEncodings, self._io.read_u4be())
- self._debug['measurement_flare_encoding']['end'] = self._io.pos()
- self._debug['standard_illuminant_encoding']['start'] = self._io.pos()
- self.standard_illuminant_encoding = self._root.StandardIlluminantEncoding(self._io, self, self._root)
- self.standard_illuminant_encoding._read()
- self._debug['standard_illuminant_encoding']['end'] = self._io.pos()
-
-
- class TextType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "value"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['value']['start'] = self._io.pos()
- self.value = (KaitaiStream.bytes_terminate(self._io.read_bytes_full(), 0, False)).decode(u"ASCII")
- self._debug['value']['end'] = self._io.pos()
-
-
- class ProfileSequenceIdentifierType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_structures", "positions_table", "profile_identifiers"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_structures']['start'] = self._io.pos()
- self.number_of_structures = self._io.read_u4be()
- self._debug['number_of_structures']['end'] = self._io.pos()
- self._debug['positions_table']['start'] = self._io.pos()
- self.positions_table = [None] * (self.number_of_structures)
- for i in range(self.number_of_structures):
- if not 'arr' in self._debug['positions_table']:
- self._debug['positions_table']['arr'] = []
- self._debug['positions_table']['arr'].append({'start': self._io.pos()})
- _t_positions_table = self._root.PositionNumber(self._io, self, self._root)
- _t_positions_table._read()
- self.positions_table[i] = _t_positions_table
- self._debug['positions_table']['arr'][i]['end'] = self._io.pos()
-
- self._debug['positions_table']['end'] = self._io.pos()
- self._debug['profile_identifiers']['start'] = self._io.pos()
- self.profile_identifiers = [None] * (self.number_of_structures)
- for i in range(self.number_of_structures):
- if not 'arr' in self._debug['profile_identifiers']:
- self._debug['profile_identifiers']['arr'] = []
- self._debug['profile_identifiers']['arr'].append({'start': self._io.pos()})
- _t_profile_identifiers = self._root.TagTable.TagDefinition.ProfileSequenceIdentifierType.ProfileIdentifier(self._io, self, self._root)
- _t_profile_identifiers._read()
- self.profile_identifiers[i] = _t_profile_identifiers
- self._debug['profile_identifiers']['arr'][i]['end'] = self._io.pos()
-
- self._debug['profile_identifiers']['end'] = self._io.pos()
-
- class ProfileIdentifier(KaitaiStruct):
- SEQ_FIELDS = ["profile_id", "profile_description"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['profile_id']['start'] = self._io.pos()
- self.profile_id = self._io.read_bytes(16)
- self._debug['profile_id']['end'] = self._io.pos()
- self._debug['profile_description']['start'] = self._io.pos()
- self.profile_description = self._root.TagTable.TagDefinition.MultiLocalizedUnicodeType(self._io, self, self._root)
- self.profile_description._read()
- self._debug['profile_description']['end'] = self._io.pos()
-
-
-
- class ColorantTableType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "count_of_colorants", "colorants"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['count_of_colorants']['start'] = self._io.pos()
- self.count_of_colorants = self._io.read_u4be()
- self._debug['count_of_colorants']['end'] = self._io.pos()
- self._debug['colorants']['start'] = self._io.pos()
- self.colorants = [None] * (self.count_of_colorants)
- for i in range(self.count_of_colorants):
- if not 'arr' in self._debug['colorants']:
- self._debug['colorants']['arr'] = []
- self._debug['colorants']['arr'].append({'start': self._io.pos()})
- _t_colorants = self._root.TagTable.TagDefinition.ColorantTableType.Colorant(self._io, self, self._root)
- _t_colorants._read()
- self.colorants[i] = _t_colorants
- self._debug['colorants']['arr'][i]['end'] = self._io.pos()
-
- self._debug['colorants']['end'] = self._io.pos()
-
- class Colorant(KaitaiStruct):
- SEQ_FIELDS = ["name", "padding", "pcs_values"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['name']['start'] = self._io.pos()
- self.name = (self._io.read_bytes_term(0, False, True, True)).decode(u"ASCII")
- self._debug['name']['end'] = self._io.pos()
- self._debug['padding']['start'] = self._io.pos()
- self.padding = [None] * ((32 - len(self.name)))
- for i in range((32 - len(self.name))):
- if not 'arr' in self._debug['padding']:
- self._debug['padding']['arr'] = []
- self._debug['padding']['arr'].append({'start': self._io.pos()})
- self.padding = self._io.ensure_fixed_contents(b"\x00")
- self._debug['padding']['arr'][i]['end'] = self._io.pos()
-
- self._debug['padding']['end'] = self._io.pos()
- self._debug['pcs_values']['start'] = self._io.pos()
- self.pcs_values = self._io.read_bytes(6)
- self._debug['pcs_values']['end'] = self._io.pos()
-
-
-
- class SignatureType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "signature"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['signature']['start'] = self._io.pos()
- self.signature = (self._io.read_bytes(4)).decode(u"ASCII")
- self._debug['signature']['end'] = self._io.pos()
-
-
- class CopyrightTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_localized_unicode_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiLocalizedUnicodeType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class Preview0Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_a_to_b_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutAToBType(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_b_to_a_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutBToAType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class DateTimeType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "date_and_time"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['date_and_time']['start'] = self._io.pos()
- self.date_and_time = self._root.DateTimeNumber(self._io, self, self._root)
- self.date_and_time._read()
- self._debug['date_and_time']['end'] = self._io.pos()
-
-
- class DToB3Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_process_elements_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiProcessElementsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class Preview2Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_b_to_a_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutBToAType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class DeviceModelDescTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_localized_unicode_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiLocalizedUnicodeType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class MultiProcessElementsType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_input_channels", "number_of_output_channels", "number_of_processing_elements", "process_element_positions_table", "data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_input_channels']['start'] = self._io.pos()
- self.number_of_input_channels = self._io.read_u2be()
- self._debug['number_of_input_channels']['end'] = self._io.pos()
- self._debug['number_of_output_channels']['start'] = self._io.pos()
- self.number_of_output_channels = self._io.read_u2be()
- self._debug['number_of_output_channels']['end'] = self._io.pos()
- self._debug['number_of_processing_elements']['start'] = self._io.pos()
- self.number_of_processing_elements = self._io.read_u4be()
- self._debug['number_of_processing_elements']['end'] = self._io.pos()
- self._debug['process_element_positions_table']['start'] = self._io.pos()
- self.process_element_positions_table = [None] * (self.number_of_processing_elements)
- for i in range(self.number_of_processing_elements):
- if not 'arr' in self._debug['process_element_positions_table']:
- self._debug['process_element_positions_table']['arr'] = []
- self._debug['process_element_positions_table']['arr'].append({'start': self._io.pos()})
- _t_process_element_positions_table = self._root.PositionNumber(self._io, self, self._root)
- _t_process_element_positions_table._read()
- self.process_element_positions_table[i] = _t_process_element_positions_table
- self._debug['process_element_positions_table']['arr'][i]['end'] = self._io.pos()
-
- self._debug['process_element_positions_table']['end'] = self._io.pos()
- self._debug['data']['start'] = self._io.pos()
- self.data = self._io.read_bytes_full()
- self._debug['data']['end'] = self._io.pos()
-
-
- class UInt16ArrayType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "values"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['values']['start'] = self._io.pos()
- self.values = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['values']:
- self._debug['values']['arr'] = []
- self._debug['values']['arr'].append({'start': self._io.pos()})
- self.values.append(self._io.read_u2be())
- self._debug['values']['arr'][len(self.values) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['values']['end'] = self._io.pos()
-
-
- class ColorantOrderTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.colorant_order_type:
- self.tag_data = self._root.TagTable.TagDefinition.ColorantOrderType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class DataType(KaitaiStruct):
-
- class DataTypes(Enum):
- ascii_data = 0
- binary_data = 1
- SEQ_FIELDS = ["data_flag"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['data_flag']['start'] = self._io.pos()
- self.data_flag = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.DataType.DataTypes, self._io.read_u4be())
- self._debug['data_flag']['end'] = self._io.pos()
-
-
- class ChromaticityType(KaitaiStruct):
-
- class ColorantAndPhosphorEncodings(Enum):
- unknown = 0
- itu_r_bt_709_2 = 1
- smpte_rp145 = 2
- ebu_tech_3213_e = 3
- p22 = 4
- SEQ_FIELDS = ["reserved", "number_of_device_channels", "colorant_and_phosphor_encoding", "ciexy_coordinates_per_channel"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_device_channels']['start'] = self._io.pos()
- self.number_of_device_channels = self._io.read_u2be()
- self._debug['number_of_device_channels']['end'] = self._io.pos()
- self._debug['colorant_and_phosphor_encoding']['start'] = self._io.pos()
- self.colorant_and_phosphor_encoding = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.ChromaticityType.ColorantAndPhosphorEncodings, self._io.read_u2be())
- self._debug['colorant_and_phosphor_encoding']['end'] = self._io.pos()
- self._debug['ciexy_coordinates_per_channel']['start'] = self._io.pos()
- self.ciexy_coordinates_per_channel = [None] * (self.number_of_device_channels)
- for i in range(self.number_of_device_channels):
- if not 'arr' in self._debug['ciexy_coordinates_per_channel']:
- self._debug['ciexy_coordinates_per_channel']['arr'] = []
- self._debug['ciexy_coordinates_per_channel']['arr'].append({'start': self._io.pos()})
- _t_ciexy_coordinates_per_channel = self._root.TagTable.TagDefinition.ChromaticityType.CiexyCoordinateValues(self._io, self, self._root)
- _t_ciexy_coordinates_per_channel._read()
- self.ciexy_coordinates_per_channel[i] = _t_ciexy_coordinates_per_channel
- self._debug['ciexy_coordinates_per_channel']['arr'][i]['end'] = self._io.pos()
-
- self._debug['ciexy_coordinates_per_channel']['end'] = self._io.pos()
-
- class CiexyCoordinateValues(KaitaiStruct):
- SEQ_FIELDS = ["x_coordinate", "y_coordinate"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['x_coordinate']['start'] = self._io.pos()
- self.x_coordinate = self._io.read_u2be()
- self._debug['x_coordinate']['end'] = self._io.pos()
- self._debug['y_coordinate']['start'] = self._io.pos()
- self.y_coordinate = self._io.read_u2be()
- self._debug['y_coordinate']['end'] = self._io.pos()
-
-
-
- class LuminanceTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.xyz_type:
- self.tag_data = self._root.TagTable.TagDefinition.XyzType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class S15Fixed16ArrayType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "values"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['values']['start'] = self._io.pos()
- self.values = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['values']:
- self._debug['values']['arr'] = []
- self._debug['values']['arr'].append({'start': self._io.pos()})
- _t_values = self._root.S15Fixed16Number(self._io, self, self._root)
- _t_values._read()
- self.values.append(_t_values)
- self._debug['values']['arr'][len(self.values) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['values']['end'] = self._io.pos()
-
-
- class MultiLocalizedUnicodeType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_records", "record_size", "records"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_records']['start'] = self._io.pos()
- self.number_of_records = self._io.read_u4be()
- self._debug['number_of_records']['end'] = self._io.pos()
- self._debug['record_size']['start'] = self._io.pos()
- self.record_size = self._io.read_u4be()
- self._debug['record_size']['end'] = self._io.pos()
- self._debug['records']['start'] = self._io.pos()
- self.records = [None] * (self.number_of_records)
- for i in range(self.number_of_records):
- if not 'arr' in self._debug['records']:
- self._debug['records']['arr'] = []
- self._debug['records']['arr'].append({'start': self._io.pos()})
- _t_records = self._root.TagTable.TagDefinition.MultiLocalizedUnicodeType.Record(self._io, self, self._root)
- _t_records._read()
- self.records[i] = _t_records
- self._debug['records']['arr'][i]['end'] = self._io.pos()
-
- self._debug['records']['end'] = self._io.pos()
-
- class Record(KaitaiStruct):
- SEQ_FIELDS = ["language_code", "country_code", "string_length", "string_offset"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['language_code']['start'] = self._io.pos()
- self.language_code = self._io.read_u2be()
- self._debug['language_code']['end'] = self._io.pos()
- self._debug['country_code']['start'] = self._io.pos()
- self.country_code = self._io.read_u2be()
- self._debug['country_code']['end'] = self._io.pos()
- self._debug['string_length']['start'] = self._io.pos()
- self.string_length = self._io.read_u4be()
- self._debug['string_length']['end'] = self._io.pos()
- self._debug['string_offset']['start'] = self._io.pos()
- self.string_offset = self._io.read_u4be()
- self._debug['string_offset']['end'] = self._io.pos()
-
- @property
- def string_data(self):
- if hasattr(self, '_m_string_data'):
- return self._m_string_data if hasattr(self, '_m_string_data') else None
-
- _pos = self._io.pos()
- self._io.seek(self.string_offset)
- self._debug['_m_string_data']['start'] = self._io.pos()
- self._m_string_data = (self._io.read_bytes(self.string_length)).decode(u"UTF-16BE")
- self._debug['_m_string_data']['end'] = self._io.pos()
- self._io.seek(_pos)
- return self._m_string_data if hasattr(self, '_m_string_data') else None
-
-
-
- class AToB2Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_a_to_b_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutAToBType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class AToB1Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_a_to_b_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutAToBType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ColorimetricIntentImageStateTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.signature_type:
- self.tag_data = self._root.TagTable.TagDefinition.SignatureType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class CharTargetTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.text_type:
- self.tag_data = self._root.TagTable.TagDefinition.TextType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ColorantTableTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.colorant_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.ColorantTableType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class CalibrationDateTimeTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.date_time_type:
- self.tag_data = self._root.TagTable.TagDefinition.DateTimeType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class NamedColor2Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.named_color_2_type:
- self.tag_data = self._root.TagTable.TagDefinition.NamedColor2Type(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ViewingCondDescTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_localized_unicode_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiLocalizedUnicodeType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class BToD3Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_process_elements_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiProcessElementsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ProfileSequenceDescType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_description_structures", "profile_descriptions"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_description_structures']['start'] = self._io.pos()
- self.number_of_description_structures = self._io.read_u4be()
- self._debug['number_of_description_structures']['end'] = self._io.pos()
- self._debug['profile_descriptions']['start'] = self._io.pos()
- self.profile_descriptions = [None] * (self.number_of_description_structures)
- for i in range(self.number_of_description_structures):
- if not 'arr' in self._debug['profile_descriptions']:
- self._debug['profile_descriptions']['arr'] = []
- self._debug['profile_descriptions']['arr'].append({'start': self._io.pos()})
- _t_profile_descriptions = self._root.TagTable.TagDefinition.ProfileSequenceDescType.ProfileDescription(self._io, self, self._root)
- _t_profile_descriptions._read()
- self.profile_descriptions[i] = _t_profile_descriptions
- self._debug['profile_descriptions']['arr'][i]['end'] = self._io.pos()
-
- self._debug['profile_descriptions']['end'] = self._io.pos()
-
- class ProfileDescription(KaitaiStruct):
- SEQ_FIELDS = ["device_manufacturer", "device_model", "device_attributes", "device_technology", "description_of_device_manufacturer", "description_of_device_model"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['device_manufacturer']['start'] = self._io.pos()
- self.device_manufacturer = self._root.DeviceManufacturer(self._io, self, self._root)
- self.device_manufacturer._read()
- self._debug['device_manufacturer']['end'] = self._io.pos()
- self._debug['device_model']['start'] = self._io.pos()
- self.device_model = (self._io.read_bytes(4)).decode(u"ASCII")
- self._debug['device_model']['end'] = self._io.pos()
- self._debug['device_attributes']['start'] = self._io.pos()
- self.device_attributes = self._root.DeviceAttributes(self._io, self, self._root)
- self.device_attributes._read()
- self._debug['device_attributes']['end'] = self._io.pos()
- self._debug['device_technology']['start'] = self._io.pos()
- self.device_technology = self._root.TagTable.TagDefinition.TechnologyTag(self._io, self, self._root)
- self.device_technology._read()
- self._debug['device_technology']['end'] = self._io.pos()
- self._debug['description_of_device_manufacturer']['start'] = self._io.pos()
- self.description_of_device_manufacturer = self._root.TagTable.TagDefinition.DeviceMfgDescTag(self._io, self, self._root)
- self.description_of_device_manufacturer._read()
- self._debug['description_of_device_manufacturer']['end'] = self._io.pos()
- self._debug['description_of_device_model']['start'] = self._io.pos()
- self.description_of_device_model = self._root.TagTable.TagDefinition.DeviceModelDescTag(self._io, self, self._root)
- self.description_of_device_model._read()
- self._debug['description_of_device_model']['end'] = self._io.pos()
-
-
-
- class ProfileSequenceIdentifierTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.profile_sequence_identifier_type:
- self.tag_data = self._root.TagTable.TagDefinition.ProfileSequenceIdentifierType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class BToD1Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_process_elements_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiProcessElementsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ColorantOrderType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "count_of_colorants", "numbers_of_colorants_in_order_of_printing"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['count_of_colorants']['start'] = self._io.pos()
- self.count_of_colorants = self._io.read_u4be()
- self._debug['count_of_colorants']['end'] = self._io.pos()
- self._debug['numbers_of_colorants_in_order_of_printing']['start'] = self._io.pos()
- self.numbers_of_colorants_in_order_of_printing = [None] * (self.count_of_colorants)
- for i in range(self.count_of_colorants):
- if not 'arr' in self._debug['numbers_of_colorants_in_order_of_printing']:
- self._debug['numbers_of_colorants_in_order_of_printing']['arr'] = []
- self._debug['numbers_of_colorants_in_order_of_printing']['arr'].append({'start': self._io.pos()})
- self.numbers_of_colorants_in_order_of_printing[i] = self._io.read_u1()
- self._debug['numbers_of_colorants_in_order_of_printing']['arr'][i]['end'] = self._io.pos()
-
- self._debug['numbers_of_colorants_in_order_of_printing']['end'] = self._io.pos()
-
-
- class DToB2Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_process_elements_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiProcessElementsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class GrayTrcTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.curve_type:
- self.tag_data = self._root.TagTable.TagDefinition.CurveType(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.parametric_curve_type:
- self.tag_data = self._root.TagTable.TagDefinition.ParametricCurveType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class ViewingConditionsType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "un_normalized_ciexyz_values_for_illuminant", "un_normalized_ciexyz_values_for_surround", "illuminant_type"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['un_normalized_ciexyz_values_for_illuminant']['start'] = self._io.pos()
- self.un_normalized_ciexyz_values_for_illuminant = self._root.XyzNumber(self._io, self, self._root)
- self.un_normalized_ciexyz_values_for_illuminant._read()
- self._debug['un_normalized_ciexyz_values_for_illuminant']['end'] = self._io.pos()
- self._debug['un_normalized_ciexyz_values_for_surround']['start'] = self._io.pos()
- self.un_normalized_ciexyz_values_for_surround = self._root.XyzNumber(self._io, self, self._root)
- self.un_normalized_ciexyz_values_for_surround._read()
- self._debug['un_normalized_ciexyz_values_for_surround']['end'] = self._io.pos()
- self._debug['illuminant_type']['start'] = self._io.pos()
- self.illuminant_type = self._root.StandardIlluminantEncoding(self._io, self, self._root)
- self.illuminant_type._read()
- self._debug['illuminant_type']['end'] = self._io.pos()
-
-
- class LutBToAType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "number_of_input_channels", "number_of_output_channels", "padding", "offset_to_first_b_curve", "offset_to_matrix", "offset_to_first_m_curve", "offset_to_clut", "offset_to_first_a_curve", "data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['number_of_input_channels']['start'] = self._io.pos()
- self.number_of_input_channels = self._io.read_u1()
- self._debug['number_of_input_channels']['end'] = self._io.pos()
- self._debug['number_of_output_channels']['start'] = self._io.pos()
- self.number_of_output_channels = self._io.read_u1()
- self._debug['number_of_output_channels']['end'] = self._io.pos()
- self._debug['padding']['start'] = self._io.pos()
- self.padding = self._io.ensure_fixed_contents(b"\x00\x00")
- self._debug['padding']['end'] = self._io.pos()
- self._debug['offset_to_first_b_curve']['start'] = self._io.pos()
- self.offset_to_first_b_curve = self._io.read_u4be()
- self._debug['offset_to_first_b_curve']['end'] = self._io.pos()
- self._debug['offset_to_matrix']['start'] = self._io.pos()
- self.offset_to_matrix = self._io.read_u4be()
- self._debug['offset_to_matrix']['end'] = self._io.pos()
- self._debug['offset_to_first_m_curve']['start'] = self._io.pos()
- self.offset_to_first_m_curve = self._io.read_u4be()
- self._debug['offset_to_first_m_curve']['end'] = self._io.pos()
- self._debug['offset_to_clut']['start'] = self._io.pos()
- self.offset_to_clut = self._io.read_u4be()
- self._debug['offset_to_clut']['end'] = self._io.pos()
- self._debug['offset_to_first_a_curve']['start'] = self._io.pos()
- self.offset_to_first_a_curve = self._io.read_u4be()
- self._debug['offset_to_first_a_curve']['end'] = self._io.pos()
- self._debug['data']['start'] = self._io.pos()
- self.data = self._io.read_bytes_full()
- self._debug['data']['end'] = self._io.pos()
-
-
- class GreenTrcTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.curve_type:
- self.tag_data = self._root.TagTable.TagDefinition.CurveType(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.parametric_curve_type:
- self.tag_data = self._root.TagTable.TagDefinition.ParametricCurveType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class UInt32ArrayType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "values"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['values']['start'] = self._io.pos()
- self.values = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['values']:
- self._debug['values']['arr'] = []
- self._debug['values']['arr'].append({'start': self._io.pos()})
- self.values.append(self._io.read_u4be())
- self._debug['values']['arr'][len(self.values) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['values']['end'] = self._io.pos()
-
-
- class GamutTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_one_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut8Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_table_with_two_byte_precision_type:
- self.tag_data = self._root.TagTable.TagDefinition.Lut16Type(self._io, self, self._root)
- self.tag_data._read()
- elif _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_function_b_to_a_table_type:
- self.tag_data = self._root.TagTable.TagDefinition.LutBToAType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class UInt8ArrayType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "values"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['values']['start'] = self._io.pos()
- self.values = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['values']:
- self._debug['values']['arr'] = []
- self._debug['values']['arr'].append({'start': self._io.pos()})
- self.values.append(self._io.read_u1())
- self._debug['values']['arr'][len(self.values) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['values']['end'] = self._io.pos()
-
-
- class RedMatrixColumnTag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.xyz_type:
- self.tag_data = self._root.TagTable.TagDefinition.XyzType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- class UInt64ArrayType(KaitaiStruct):
- SEQ_FIELDS = ["reserved", "values"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00\x00\x00\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['values']['start'] = self._io.pos()
- self.values = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['values']:
- self._debug['values']['arr'] = []
- self._debug['values']['arr'].append({'start': self._io.pos()})
- self.values.append(self._io.read_u8be())
- self._debug['values']['arr'][len(self.values) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['values']['end'] = self._io.pos()
-
-
- class BToD2Tag(KaitaiStruct):
- SEQ_FIELDS = ["tag_type", "tag_data"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['tag_type']['start'] = self._io.pos()
- self.tag_type = KaitaiStream.resolve_enum(self._root.TagTable.TagDefinition.TagTypeSignatures, self._io.read_u4be())
- self._debug['tag_type']['end'] = self._io.pos()
- self._debug['tag_data']['start'] = self._io.pos()
- _on = self.tag_type
- if _on == self._root.TagTable.TagDefinition.TagTypeSignatures.multi_process_elements_type:
- self.tag_data = self._root.TagTable.TagDefinition.MultiProcessElementsType(self._io, self, self._root)
- self.tag_data._read()
- self._debug['tag_data']['end'] = self._io.pos()
-
-
- @property
- def tag_data_element(self):
- if hasattr(self, '_m_tag_data_element'):
- return self._m_tag_data_element if hasattr(self, '_m_tag_data_element') else None
-
- _pos = self._io.pos()
- self._io.seek(self.offset_to_data_element)
- self._debug['_m_tag_data_element']['start'] = self._io.pos()
- _on = self.tag_signature
- if _on == self._root.TagTable.TagDefinition.TagSignatures.colorant_order:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ColorantOrderTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.b_to_a_2:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BToA2Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.media_white_point:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.MediaWhitePointTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.b_to_d_3:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BToD3Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.colorimetric_intent_image_state:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ColorimetricIntentImageStateTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.viewing_cond_desc:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ViewingCondDescTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.preview_1:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.Preview1Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.device_model_desc:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.DeviceModelDescTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.chromaticity:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ChromaticityTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.preview_0:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.Preview0Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.d_to_b_1:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.DToB1Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.saturation_rendering_intent_gamut:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.SaturationRenderingIntentGamutTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.b_to_a_0:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BToA0Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.green_matrix_column:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.GreenMatrixColumnTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.copyright:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.CopyrightTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.blue_matrix_column:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BlueMatrixColumnTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.chromatic_adaptation:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ChromaticAdaptationTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.a_to_b_1:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.AToB1Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.output_response:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.OutputResponseTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.profile_sequence:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ProfileSequenceTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.char_target:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.CharTargetTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.red_trc:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.RedTrcTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.gamut:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.GamutTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.device_mfg_desc:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.DeviceMfgDescTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.measurement:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.MeasurementTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.green_trc:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.GreenTrcTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.d_to_b_3:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.DToB3Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.colorant_table:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ColorantTableTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.d_to_b_2:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.DToB2Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.profile_description:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ProfileDescriptionTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.profile_sequence_identifier:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ProfileSequenceIdentifierTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.gray_trc:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.GrayTrcTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.perceptual_rendering_intent_gamut:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.PerceptualRenderingIntentGamutTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.blue_trc:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BlueTrcTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.d_to_b_0:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.DToB0Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.a_to_b_2:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.AToB2Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.calibration_date_time:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.CalibrationDateTimeTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.colorant_table_out:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ColorantTableOutTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.red_matrix_column:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.RedMatrixColumnTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.preview_2:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.Preview2Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.a_to_b_0:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.AToB0Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.luminance:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.LuminanceTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.named_color_2:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.NamedColor2Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.b_to_d_2:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BToD2Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.b_to_d_0:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BToD0Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.b_to_a_1:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BToA1Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.b_to_d_1:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.BToD1Tag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.viewing_conditions:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.ViewingConditionsTag(io, self, self._root)
- self._m_tag_data_element._read()
- elif _on == self._root.TagTable.TagDefinition.TagSignatures.technology:
- self._raw__m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- io = KaitaiStream(BytesIO(self._raw__m_tag_data_element))
- self._m_tag_data_element = self._root.TagTable.TagDefinition.TechnologyTag(io, self, self._root)
- self._m_tag_data_element._read()
- else:
- self._m_tag_data_element = self._io.read_bytes(self.size_of_data_element)
- self._debug['_m_tag_data_element']['end'] = self._io.pos()
- self._io.seek(_pos)
- return self._m_tag_data_element if hasattr(self, '_m_tag_data_element') else None
-
-
-
- class DeviceAttributes(KaitaiStruct):
-
- class DeviceAttributesReflectiveOrTransparency(Enum):
- reflective = 0
- transparency = 1
-
- class DeviceAttributesGlossyOrMatte(Enum):
- glossy = 0
- matte = 1
-
- class DeviceAttributesPositiveOrNegativeMediaPolarity(Enum):
- positive_media_polarity = 0
- negative_media_polarity = 1
-
- class DeviceAttributesColourOrBlackAndWhiteMedia(Enum):
- colour_media = 0
- black_and_white_media = 1
- SEQ_FIELDS = ["reflective_or_transparency", "glossy_or_matte", "positive_or_negative_media_polarity", "colour_or_black_and_white_media", "reserved", "vendor_specific"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['reflective_or_transparency']['start'] = self._io.pos()
- self.reflective_or_transparency = KaitaiStream.resolve_enum(self._root.DeviceAttributes.DeviceAttributesReflectiveOrTransparency, self._io.read_bits_int(1))
- self._debug['reflective_or_transparency']['end'] = self._io.pos()
- self._debug['glossy_or_matte']['start'] = self._io.pos()
- self.glossy_or_matte = KaitaiStream.resolve_enum(self._root.DeviceAttributes.DeviceAttributesGlossyOrMatte, self._io.read_bits_int(1))
- self._debug['glossy_or_matte']['end'] = self._io.pos()
- self._debug['positive_or_negative_media_polarity']['start'] = self._io.pos()
- self.positive_or_negative_media_polarity = KaitaiStream.resolve_enum(self._root.DeviceAttributes.DeviceAttributesPositiveOrNegativeMediaPolarity, self._io.read_bits_int(1))
- self._debug['positive_or_negative_media_polarity']['end'] = self._io.pos()
- self._debug['colour_or_black_and_white_media']['start'] = self._io.pos()
- self.colour_or_black_and_white_media = KaitaiStream.resolve_enum(self._root.DeviceAttributes.DeviceAttributesColourOrBlackAndWhiteMedia, self._io.read_bits_int(1))
- self._debug['colour_or_black_and_white_media']['end'] = self._io.pos()
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.read_bits_int(28)
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['vendor_specific']['start'] = self._io.pos()
- self.vendor_specific = self._io.read_bits_int(32)
- self._debug['vendor_specific']['end'] = self._io.pos()
-
-
- class DeviceManufacturer(KaitaiStruct):
-
- class DeviceManufacturers(Enum):
- erdt_systems_gmbh_and_co_kg = 878981744
- aamazing_technologies_inc = 1094798657
- acer_peripherals = 1094927698
- acolyte_color_research = 1094929492
- actix_sytems_inc = 1094931529
- adara_technology_inc = 1094992210
- adobe_systems_incorporated = 1094992453
- adi_systems_inc = 1094994208
- agfa_graphics_nv = 1095190081
- alps_electric_usa_inc = 1095519556
- alps_electric_usa_inc_2 = 1095520339
- alwan_color_expertise = 1095522126
- amiable_technologies_inc = 1095586889
- aoc_international_usa_ltd = 1095713568
- apago = 1095778631
- apple_computer_inc = 1095782476
- ast = 1095980064
- atandt_computer_systems = 1096033876
- barbieri_electronic = 1111573836
- barco_nv = 1112687439
- breakpoint_pty_limited = 1112689488
- brother_industries_ltd = 1112690516
- bull = 1112886348
- bus_computer_systems = 1112888096
- c_itoh = 1127041364
- intel_corporation = 1128353106
- canon_inc_canon_development_americas_inc = 1128353359
- carroll_touch = 1128354386
- casio_computer_co_ltd = 1128354633
- colorbus_pl = 1128420691
- crossfield = 1128614944
- crossfield_2 = 1128615032
- cgs_publishing_technologies_international_gmbh = 1128747808
- rochester_robotics = 1128811808
- colour_imaging_group_london = 1128875852
- citizen = 1128879177
- candela_ltd = 1129066544
- color_iq = 1129072977
- chromaco_inc = 1129136975
- chromix = 1129146712
- colorgraphic_communications_corporation = 1129270351
- compaq_computer_corporation = 1129270608
- compeq_usa_focus_technology = 1129270640
- conrac_display_products = 1129270866
- cordata_technologies_inc = 1129271876
- compaq_computer_corporation_2 = 1129337120
- colorpro = 1129337423
- cornerstone = 1129467424
- ctx_international_inc = 1129601056
- colorvision = 1129728339
- fujitsu_laboratories_ltd = 1129792288
- darius_technology_ltd = 1145131593
- dataproducts = 1145132097
- dry_creek_photo = 1145262112
- digital_contents_resource_center_chung_ang_university = 1145262659
- dell_computer_corporation = 1145392204
- dainippon_ink_and_chemicals = 1145652000
- diconix = 1145652047
- digital = 1145653065
- digital_light_and_color = 1145841219
- doppelganger_llc = 1146113095
- dainippon_screen = 1146298400
- doosol = 1146310476
- dupont = 1146441806
- epson = 1162892111
- esko_graphics = 1163086671
- electronics_and_telecommunications_research_institute = 1163153993
- everex_systems_inc = 1163281746
- exactcode_gmbh = 1163411779
- eizo_nanao_corporation = 1164540527
- falco_data_products_inc = 1178684483
- fuji_photo_film_coltd = 1179000864
- fujifilm_electronic_imaging_ltd = 1179010377
- fnord_software = 1179537988
- fora_inc = 1179603521
- forefront_technology_corporation = 1179603525
- fujitsu = 1179658794
- waytech_development_inc = 1179664672
- fujitsu_2 = 1179994697
- fuji_xerox_co_ltd = 1180180512
- gcc_technologies_inc = 1195590432
- global_graphics_software_limited = 1195856716
- gretagmacbeth = 1196245536
- gmg_gmbh_and_co_kg = 1196246816
- goldstar_technology_inc = 1196379204
- giantprint_pty_ltd = 1196446292
- gretagmacbeth_2 = 1196707138
- waytech_development_inc_2 = 1196835616
- sony_corporation = 1196896843
- hci = 1212369184
- heidelberger_druckmaschinen_ag = 1212435744
- hermes = 1212502605
- hitachi_america_ltd = 1212765249
- hewlett_packard = 1213210656
- hitachi_ltd = 1213481760
- hiti_digital_inc = 1214862441
- ibm_corporation = 1229081888
- scitex_corporation_ltd = 1229213268
- hewlett_packard_2 = 1229275936
- iiyama_north_america_inc = 1229543745
- ikegami_electronics_inc = 1229669703
- image_systems_corporation = 1229799751
- ingram_micro_inc = 1229801760
- intel_corporation_2 = 1229870147
- intl = 1229870156
- intra_electronics_usa_inc = 1229870162
- iocomm_international_technology_corporation = 1229931343
- infoprint_solutions_company = 1230000928
- scitex_corporation_ltd_3 = 1230129491
- ichikawa_soft_laboratory = 1230195744
- itnl = 1230261836
- ivm = 1230392608
- iwatsu_electric_co_ltd = 1230455124
- scitex_corporation_ltd_2 = 1231318644
- inca_digital_printers_ltd = 1231971169
- scitex_corporation_ltd_4 = 1232234867
- jetsoft_development = 1246971476
- jvc_information_products_co = 1247167264
- scitex_corporation_ltd_6 = 1262572116
- kfc_computek_components_corporation = 1262895904
- klh_computers = 1263290400
- konica_minolta_holdings_inc = 1263355972
- konica_corporation = 1263420225
- kodak = 1263486017
- kyocera = 1264144195
- scitex_corporation_ltd_7 = 1264677492
- leica_camera_ag = 1279476039
- leeds_colour = 1279476548
- left_dakota = 1279541579
- leading_technology_inc = 1279607108
- lexmark_international_inc = 1279613005
- link_computer_inc = 1279872587
- linotronic = 1279872591
- lite_on_inc = 1279874117
- mag_computronic_usa_inc = 1296123715
- mag_innovision_inc = 1296123721
- mannesmann = 1296125518
- micron_technology_inc = 1296646990
- microtek = 1296646994
- microvitec_inc = 1296646998
- minolta = 1296649807
- mitsubishi_electronics_america_inc = 1296651347
- mitsuba_corporation = 1296651379
- minolta_2 = 1296976980
- modgraph_inc = 1297040455
- monitronix_inc = 1297043017
- monaco_systems_inc = 1297043027
- morse_technology_inc = 1297044051
- motive_systems = 1297044553
- microsoft_corporation = 1297303124
- mutoh_industries_ltd = 1297437775
- mitsubishi_electric_corporation_kyoto_works = 1298756723
- nanao_usa_corporation = 1312902721
- nec_corporation = 1313162016
- nexpress_solutions_llc = 1313167440
- nissei_sangyo_america_ltd = 1313428307
- nikon_corporation = 1313558350
- oce_technologies_bv = 1329808672
- ocecolor = 1329808707
- oki = 1330333984
- okidata = 1330334020
- okidata_2 = 1330334032
- olivetti = 1330399574
- olympus_optical_co_ltd = 1330403661
- onyx_graphics = 1330534744
- optiquest = 1330664521
- packard_bell = 1346454347
- matsushita_electric_industrial_co_ltd = 1346457153
- pantone_inc = 1346457172
- packard_bell_2 = 1346522656
- pfu_limited = 1346786592
- philips_consumer_electronics_co = 1346914636
- hoya_corporation_pentax_imaging_systems_division = 1347310680
- phase_one_a_s = 1347382885
- premier_computer_innovations = 1347568973
- princeton_graphic_systems = 1347569998
- princeton_publishing_labs = 1347570000
- qlux = 1363957080
- qms_inc = 1364022048
- qpcard_ab = 1364214596
- quadlaser = 1364541764
- qume_corporation = 1364544837
- radius_inc = 1380009033
- integrated_color_solutions_inc_2 = 1380205688
- roland_dg_corporation = 1380206368
- redms_group_inc = 1380271181
- relisys = 1380273225
- rolf_gierling_multitools = 1380404563
- ricoh_corporation = 1380533071
- edmund_ronald = 1380863044
- royal = 1380931905
- ricoh_printing_systemsltd = 1380991776
- royal_information_electronics_co_ltd = 1381256224
- sampo_corporation_of_america = 1396788560
- samsung_inc = 1396788563
- jaime_santana_pomares = 1396788820
- scitex_corporation_ltd_9 = 1396918612
- dainippon_screen_3 = 1396920910
- scitex_corporation_ltd_12 = 1396985888
- samsung_electronics_coltd = 1397048096
- seiko_instruments_usa_inc = 1397049675
- seikosha = 1397049707
- scanguycom = 1397183833
- sharp_laboratories = 1397244242
- international_color_consortium = 1397310275
- sony_corporation_2 = 1397706329
- spectracal = 1397769036
- star = 1398030674
- sampo_technology_corporation = 1398031136
- scitex_corporation_ltd_10 = 1399023988
- scitex_corporation_ltd_13 = 1399091232
- sony_corporation_3 = 1399811705
- talon_technology_corporation = 1413565519
- tandy = 1413566020
- tatung_co_of_america_inc = 1413567573
- taxan_america_inc = 1413568577
- tokyo_denshi_sekei_kk = 1413763872
- teco_information_systems_inc = 1413825359
- tegra = 1413826386
- tektronix_inc = 1413827412
- texas_instruments = 1414078496
- typemaker_ltd = 1414351698
- toshiba_corp = 1414484802
- toshiba_inc = 1414484808
- totoku_electric_co_ltd = 1414485067
- triumph = 1414678869
- toshiba_tec_corporation = 1414742612
- ttx_computer_products_inc = 1414813728
- tvm_professional_monitor_corporation = 1414941984
- tw_casper_corporation = 1414996000
- ulead_systems = 1431065432
- unisys = 1431193939
- utz_fehlau_and_sohn = 1431591494
- varityper = 1447121481
- viewsonic = 1447642455
- visual_communication = 1447646028
- wang = 1463897671
- wilbur_imaging = 1464615506
- ware_to_go = 1465141042
- wyse_technology = 1465471813
- xerox_corporation = 1480938072
- x_rite = 1481787732
- lavanyas_test_company = 1513173555
- zoran_corporation = 1515340110
- zebra_technologies_inc = 1516593778
- basiccolor_gmbh = 1648968515
- bergdesign_incorporated = 1650815591
- integrated_color_solutions_inc = 1667594596
- macdermid_colorspan_inc = 1668051824
- dainippon_screen_2 = 1685266464
- dupont_2 = 1685418094
- fujifilm_electronic_imaging_ltd_2 = 1717986665
- fluxdata_corporation = 1718383992
- scitex_corporation_ltd_5 = 1769105779
- scitex_corporation_ltd_8 = 1801548404
- erdt_systems_gmbh_and_co_kg_2 = 1868706916
- medigraph_gmbh = 1868720483
- qubyx_sarl = 1903518329
- scitex_corporation_ltd_11 = 1935894900
- dainippon_screen_4 = 1935897198
- scitex_corporation_ltd_14 = 1935962144
- siwi_grafika_corporation = 1936291689
- yxymaster_gmbh = 2037938541
- SEQ_FIELDS = ["device_manufacturer"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['device_manufacturer']['start'] = self._io.pos()
- self.device_manufacturer = KaitaiStream.resolve_enum(self._root.DeviceManufacturer.DeviceManufacturers, self._io.read_u4be())
- self._debug['device_manufacturer']['end'] = self._io.pos()
-
-
- class S15Fixed16Number(KaitaiStruct):
- SEQ_FIELDS = ["number"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['number']['start'] = self._io.pos()
- self.number = self._io.read_bytes(4)
- self._debug['number']['end'] = self._io.pos()
-
-
- class PositionNumber(KaitaiStruct):
- SEQ_FIELDS = ["offset_to_data_element", "size_of_data_element"]
- def __init__(self, _io, _parent=None, _root=None):
- self._io = _io
- self._parent = _parent
- self._root = _root if _root else self
- self._debug = collections.defaultdict(dict)
-
- def _read(self):
- self._debug['offset_to_data_element']['start'] = self._io.pos()
- self.offset_to_data_element = self._io.read_u4be()
- self._debug['offset_to_data_element']['end'] = self._io.pos()
- self._debug['size_of_data_element']['start'] = self._io.pos()
- self.size_of_data_element = self._io.read_u4be()
- self._debug['size_of_data_element']['end'] = self._io.pos()
-
-
-