summaryrefslogtreecommitdiff
path: root/python/examples/kaitai/kaitai_struct_formats/image
diff options
context:
space:
mode:
Diffstat (limited to 'python/examples/kaitai/kaitai_struct_formats/image')
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/__init__.py0
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/bmp.py181
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/dicom.py4366
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/exif.py36
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/exif_be.py621
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/exif_le.py621
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/gif.py464
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/icc_4.py3370
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/ico.py125
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/jpeg.py340
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/pcx.py171
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/pcx_dcx.py77
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/png.py581
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/psx_tim.py90
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/tga.py213
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/wmf.py460
-rw-r--r--python/examples/kaitai/kaitai_struct_formats/image/xwd.py189
17 files changed, 0 insertions, 11905 deletions
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/__init__.py b/python/examples/kaitai/kaitai_struct_formats/image/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/__init__.py
+++ /dev/null
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/bmp.py b/python/examples/kaitai/kaitai_struct_formats/image/bmp.py
deleted file mode 100644
index 98519f41..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/bmp.py
+++ /dev/null
@@ -1,181 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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 Bmp(KaitaiStruct):
-
- class Compressions(Enum):
- rgb = 0
- rle8 = 1
- rle4 = 2
- bitfields = 3
- jpeg = 4
- png = 5
- cmyk = 11
- cmyk_rle8 = 12
- cmyk_rle4 = 13
- SEQ_FIELDS = ["file_hdr", "len_dib_header", "dib_header"]
- 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['file_hdr']['start'] = self._io.pos()
- self.file_hdr = self._root.FileHeader(self._io, self, self._root)
- self.file_hdr._read()
- self._debug['file_hdr']['end'] = self._io.pos()
- self._debug['len_dib_header']['start'] = self._io.pos()
- self.len_dib_header = self._io.read_s4le()
- self._debug['len_dib_header']['end'] = self._io.pos()
- self._debug['dib_header']['start'] = self._io.pos()
- _on = self.len_dib_header
- if _on == 104:
- self._raw_dib_header = self._io.read_bytes((self.len_dib_header - 4))
- io = KaitaiStream(BytesIO(self._raw_dib_header))
- self.dib_header = self._root.BitmapCoreHeader(io, self, self._root)
- self.dib_header._read()
- elif _on == 12:
- self._raw_dib_header = self._io.read_bytes((self.len_dib_header - 4))
- io = KaitaiStream(BytesIO(self._raw_dib_header))
- self.dib_header = self._root.BitmapCoreHeader(io, self, self._root)
- self.dib_header._read()
- elif _on == 40:
- self._raw_dib_header = self._io.read_bytes((self.len_dib_header - 4))
- io = KaitaiStream(BytesIO(self._raw_dib_header))
- self.dib_header = self._root.BitmapInfoHeader(io, self, self._root)
- self.dib_header._read()
- elif _on == 124:
- self._raw_dib_header = self._io.read_bytes((self.len_dib_header - 4))
- io = KaitaiStream(BytesIO(self._raw_dib_header))
- self.dib_header = self._root.BitmapCoreHeader(io, self, self._root)
- self.dib_header._read()
- else:
- self.dib_header = self._io.read_bytes((self.len_dib_header - 4))
- self._debug['dib_header']['end'] = self._io.pos()
-
- class FileHeader(KaitaiStruct):
- """
- .. seealso::
- Source - https://msdn.microsoft.com/en-us/library/dd183374.aspx
- """
- SEQ_FIELDS = ["magic", "len_file", "reserved1", "reserved2", "ofs_bitmap"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x42\x4D")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['len_file']['start'] = self._io.pos()
- self.len_file = self._io.read_u4le()
- self._debug['len_file']['end'] = self._io.pos()
- self._debug['reserved1']['start'] = self._io.pos()
- self.reserved1 = self._io.read_u2le()
- self._debug['reserved1']['end'] = self._io.pos()
- self._debug['reserved2']['start'] = self._io.pos()
- self.reserved2 = self._io.read_u2le()
- self._debug['reserved2']['end'] = self._io.pos()
- self._debug['ofs_bitmap']['start'] = self._io.pos()
- self.ofs_bitmap = self._io.read_s4le()
- self._debug['ofs_bitmap']['end'] = self._io.pos()
-
-
- class BitmapCoreHeader(KaitaiStruct):
- """
- .. seealso::
- Source - https://msdn.microsoft.com/en-us/library/dd183372.aspx
- """
- SEQ_FIELDS = ["image_width", "image_height", "num_planes", "bits_per_pixel"]
- 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['image_width']['start'] = self._io.pos()
- self.image_width = self._io.read_u2le()
- self._debug['image_width']['end'] = self._io.pos()
- self._debug['image_height']['start'] = self._io.pos()
- self.image_height = self._io.read_u2le()
- self._debug['image_height']['end'] = self._io.pos()
- self._debug['num_planes']['start'] = self._io.pos()
- self.num_planes = self._io.read_u2le()
- self._debug['num_planes']['end'] = self._io.pos()
- self._debug['bits_per_pixel']['start'] = self._io.pos()
- self.bits_per_pixel = self._io.read_u2le()
- self._debug['bits_per_pixel']['end'] = self._io.pos()
-
-
- class BitmapInfoHeader(KaitaiStruct):
- """
- .. seealso::
- Source - https://msdn.microsoft.com/en-us/library/dd183376.aspx
- """
- SEQ_FIELDS = ["image_width", "image_height", "num_planes", "bits_per_pixel", "compression", "len_image", "x_px_per_m", "y_px_per_m", "num_colors_used", "num_colors_important"]
- 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['image_width']['start'] = self._io.pos()
- self.image_width = self._io.read_u4le()
- self._debug['image_width']['end'] = self._io.pos()
- self._debug['image_height']['start'] = self._io.pos()
- self.image_height = self._io.read_u4le()
- self._debug['image_height']['end'] = self._io.pos()
- self._debug['num_planes']['start'] = self._io.pos()
- self.num_planes = self._io.read_u2le()
- self._debug['num_planes']['end'] = self._io.pos()
- self._debug['bits_per_pixel']['start'] = self._io.pos()
- self.bits_per_pixel = self._io.read_u2le()
- self._debug['bits_per_pixel']['end'] = self._io.pos()
- self._debug['compression']['start'] = self._io.pos()
- self.compression = KaitaiStream.resolve_enum(self._root.Compressions, self._io.read_u4le())
- self._debug['compression']['end'] = self._io.pos()
- self._debug['len_image']['start'] = self._io.pos()
- self.len_image = self._io.read_u4le()
- self._debug['len_image']['end'] = self._io.pos()
- self._debug['x_px_per_m']['start'] = self._io.pos()
- self.x_px_per_m = self._io.read_u4le()
- self._debug['x_px_per_m']['end'] = self._io.pos()
- self._debug['y_px_per_m']['start'] = self._io.pos()
- self.y_px_per_m = self._io.read_u4le()
- self._debug['y_px_per_m']['end'] = self._io.pos()
- self._debug['num_colors_used']['start'] = self._io.pos()
- self.num_colors_used = self._io.read_u4le()
- self._debug['num_colors_used']['end'] = self._io.pos()
- self._debug['num_colors_important']['start'] = self._io.pos()
- self.num_colors_important = self._io.read_u4le()
- self._debug['num_colors_important']['end'] = self._io.pos()
-
-
- @property
- def image(self):
- if hasattr(self, '_m_image'):
- return self._m_image if hasattr(self, '_m_image') else None
-
- _pos = self._io.pos()
- self._io.seek(self.file_hdr.ofs_bitmap)
- self._debug['_m_image']['start'] = self._io.pos()
- self._m_image = self._io.read_bytes_full()
- self._debug['_m_image']['end'] = self._io.pos()
- self._io.seek(_pos)
- return self._m_image if hasattr(self, '_m_image') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/dicom.py b/python/examples/kaitai/kaitai_struct_formats/image/dicom.py
deleted file mode 100644
index c13372ff..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/dicom.py
+++ /dev/null
@@ -1,4366 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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 Dicom(KaitaiStruct):
- """DICOM (Digital Imaging and Communications in Medicine), AKA NEMA
- PS3, AKA ISO 12052:2006, is a file format and network protocol
- standard for medical imaging purposes. This parser covers file
- format, typically written by various medical equipment, such as
- radiography, computer tomography scans, MRT, ultrasonography, etc.
-
- DICOM defines two transfer syntaxes: implicit and explicit. This
- top-level parser attempts to autodetect and handle both of them. If
- any problems arise, one can use `file_explicit` and `file_implicit`
- subtypes to force parsing in particular transfer syntax.
-
- .. seealso::
- Source - http://dicom.nema.org/medical/dicom/current/output/html/part10.html#chapter_7
- """
-
- class Tags(Enum):
- file_meta_information_group_length = 131072
- file_meta_information_version = 131073
- media_storage_sop_class_uid = 131074
- media_storage_sop_instance_uid = 131075
- transfer_syntax_uid = 131088
- implementation_class_uid = 131090
- implementation_version_name = 131091
- source_application_entity_title = 131094
- sending_application_entity_title = 131095
- receiving_application_entity_title = 131096
- private_information_creator_uid = 131328
- private_information = 131330
- file_set_id = 266544
- file_set_descriptor_file_id = 266561
- specific_character_set_of_file_set_descriptor_file = 266562
- offset_of_the_first_directory_record_of_the_root_directory_entity = 266752
- offset_of_the_last_directory_record_of_the_root_directory_entity = 266754
- file_set_consistency_flag = 266770
- directory_record_sequence = 266784
- offset_of_the_next_directory_record = 267264
- record_in_use_flag = 267280
- offset_of_referenced_lower_level_directory_entity = 267296
- directory_record_type = 267312
- private_record_uid = 267314
- referenced_file_id = 267520
- mrdr_directory_record_offset = 267524
- referenced_sop_class_uid_in_file = 267536
- referenced_sop_instance_uid_in_file = 267537
- referenced_transfer_syntax_uid_in_file = 267538
- referenced_related_general_sop_class_uid_in_file = 267546
- number_of_references = 267776
- length_to_end = 524289
- specific_character_set = 524293
- language_code_sequence = 524294
- image_type = 524296
- recognition_code = 524304
- instance_creation_date = 524306
- instance_creation_time = 524307
- instance_creator_uid = 524308
- instance_coercion_datetime = 524309
- sop_class_uid = 524310
- sop_instance_uid = 524312
- related_general_sop_class_uid = 524314
- original_specialized_sop_class_uid = 524315
- study_date = 524320
- series_date = 524321
- acquisition_date = 524322
- content_date = 524323
- overlay_date = 524324
- curve_date = 524325
- acquisition_datetime = 524330
- study_time = 524336
- series_time = 524337
- acquisition_time = 524338
- content_time = 524339
- overlay_time = 524340
- curve_time = 524341
- data_set_type = 524352
- data_set_subtype = 524353
- nuclear_medicine_series_type = 524354
- accession_number = 524368
- issuer_of_accession_number_sequence = 524369
- query_retrieve_level = 524370
- query_retrieve_view = 524371
- retrieve_ae_title = 524372
- station_ae_title = 524373
- instance_availability = 524374
- failed_sop_instance_uid_list = 524376
- modality = 524384
- modalities_in_study = 524385
- sop_classes_in_study = 524386
- conversion_type = 524388
- presentation_intent_type = 524392
- manufacturer = 524400
- institution_name = 524416
- institution_address = 524417
- institution_code_sequence = 524418
- referring_physician_s_name = 524432
- referring_physician_s_address = 524434
- referring_physician_s_telephone_numbers = 524436
- referring_physician_identification_sequence = 524438
- consulting_physician_s_name = 524444
- consulting_physician_identification_sequence = 524445
- code_value = 524544
- extended_code_value = 524545
- coding_scheme_designator = 524546
- coding_scheme_version = 524547
- code_meaning = 524548
- mapping_resource = 524549
- context_group_version = 524550
- context_group_local_version = 524551
- extended_code_meaning = 524552
- context_group_extension_flag = 524555
- coding_scheme_uid = 524556
- context_group_extension_creator_uid = 524557
- context_identifier = 524559
- coding_scheme_identification_sequence = 524560
- coding_scheme_registry = 524562
- coding_scheme_external_id = 524564
- coding_scheme_name = 524565
- coding_scheme_responsible_organization = 524566
- context_uid = 524567
- mapping_resource_uid = 524568
- long_code_value = 524569
- urn_code_value = 524576
- equivalent_code_sequence = 524577
- mapping_resource_name = 524578
- context_group_identification_sequence = 524579
- mapping_resource_identification_sequence = 524580
- timezone_offset_from_utc = 524801
- private_data_element_characteristics_sequence = 525056
- private_group_reference = 525057
- private_creator_reference = 525058
- block_identifying_information_status = 525059
- nonidentifying_private_elements = 525060
- deidentification_action_sequence = 525061
- identifying_private_elements = 525062
- deidentification_action = 525063
- network_id = 528384
- station_name = 528400
- study_description = 528432
- procedure_code_sequence = 528434
- series_description = 528446
- series_description_code_sequence = 528447
- institutional_department_name = 528448
- physician_s__of_record = 528456
- physician_s__of_record_identification_sequence = 528457
- performing_physician_s_name = 528464
- performing_physician_identification_sequence = 528466
- name_of_physician_s__reading_study = 528480
- physician_s__reading_study_identification_sequence = 528482
- operators__name = 528496
- operator_identification_sequence = 528498
- admitting_diagnoses_description = 528512
- admitting_diagnoses_code_sequence = 528516
- manufacturer_s_model_name = 528528
- referenced_results_sequence = 528640
- referenced_study_sequence = 528656
- referenced_performed_procedure_step_sequence = 528657
- referenced_series_sequence = 528661
- referenced_patient_sequence = 528672
- referenced_visit_sequence = 528677
- referenced_overlay_sequence = 528688
- referenced_stereometric_instance_sequence = 528692
- referenced_waveform_sequence = 528698
- referenced_image_sequence = 528704
- referenced_curve_sequence = 528709
- referenced_instance_sequence = 528714
- referenced_real_world_value_mapping_instance_sequence = 528715
- referenced_sop_class_uid = 528720
- referenced_sop_instance_uid = 528725
- sop_classes_supported = 528730
- referenced_frame_number = 528736
- simple_frame_list = 528737
- calculated_frame_list = 528738
- time_range = 528739
- frame_extraction_sequence = 528740
- multi_frame_source_sop_instance_uid = 528743
- retrieve_url = 528784
- transaction_uid = 528789
- warning_reason = 528790
- failure_reason = 528791
- failed_sop_sequence = 528792
- referenced_sop_sequence = 528793
- other_failures_sequence = 528794
- studies_containing_other_referenced_instances_sequence = 528896
- related_series_sequence = 528976
- lossy_image_compression = 532752
- derivation_description = 532753
- source_image_sequence = 532754
- stage_name = 532768
- stage_number = 532770
- number_of_stages = 532772
- view_name = 532775
- view_number = 532776
- number_of_event_timers = 532777
- number_of_views_in_stage = 532778
- event_elapsed_time_s_ = 532784
- event_timer_name_s_ = 532786
- event_timer_sequence = 532787
- event_time_offset = 532788
- event_code_sequence = 532789
- start_trim = 532802
- stop_trim = 532803
- recommended_display_frame_rate = 532804
- transducer_position = 532992
- transducer_orientation = 532996
- anatomic_structure = 533000
- anatomic_region_sequence = 533016
- anatomic_region_modifier_sequence = 533024
- primary_anatomic_structure_sequence = 533032
- anatomic_structure__space_or_region_sequence = 533033
- primary_anatomic_structure_modifier_sequence = 533040
- transducer_position_sequence = 533056
- transducer_position_modifier_sequence = 533058
- transducer_orientation_sequence = 533060
- transducer_orientation_modifier_sequence = 533062
- anatomic_structure_space_or_region_code_sequence__trial_ = 533073
- anatomic_portal_of_entrance_code_sequence__trial_ = 533075
- anatomic_approach_direction_code_sequence__trial_ = 533077
- anatomic_perspective_description__trial_ = 533078
- anatomic_perspective_code_sequence__trial_ = 533079
- anatomic_location_of_examining_instrument_description__trial_ = 533080
- anatomic_location_of_examining_instrument_code_sequence__trial_ = 533081
- anatomic_structure_space_or_region_modifier_code_sequence__trial_ = 533082
- on_axis_background_anatomic_structure_code_sequence__trial_ = 533084
- alternate_representation_sequence = 536577
- irradiation_event_uid = 536592
- source_irradiation_event_sequence = 536593
- radiopharmaceutical_administration_event_uid = 536594
- identifying_comments = 540672
- frame_type = 561159
- referenced_image_evidence_sequence = 561298
- referenced_raw_data_sequence = 561441
- creator_version_uid = 561443
- derivation_image_sequence = 561444
- source_image_evidence_sequence = 561492
- pixel_presentation = 561669
- volumetric_properties = 561670
- volume_based_calculation_technique = 561671
- complex_image_component = 561672
- acquisition_contrast = 561673
- derivation_code_sequence = 561685
- referenced_presentation_state_sequence = 561719
- referenced_other_plane_sequence = 562192
- frame_display_sequence = 562264
- recommended_display_frame_rate_in_float = 562265
- skip_frame_range_flag = 562272
- patient_s_name = 1048592
- patient_id = 1048608
- issuer_of_patient_id = 1048609
- type_of_patient_id = 1048610
- issuer_of_patient_id_qualifiers_sequence = 1048612
- source_patient_group_identification_sequence = 1048614
- group_of_patients_identification_sequence = 1048615
- subject_relative_position_in_image = 1048616
- patient_s_birth_date = 1048624
- patient_s_birth_time = 1048626
- patient_s_birth_date_in_alternative_calendar = 1048627
- patient_s_death_date_in_alternative_calendar = 1048628
- patient_s_alternative_calendar = 1048629
- patient_s_sex = 1048640
- patient_s_insurance_plan_code_sequence = 1048656
- patient_s_primary_language_code_sequence = 1048833
- patient_s_primary_language_modifier_code_sequence = 1048834
- quality_control_subject = 1049088
- quality_control_subject_type_code_sequence = 1049089
- strain_description = 1049106
- strain_nomenclature = 1049107
- strain_stock_number = 1049108
- strain_source_registry_code_sequence = 1049109
- strain_stock_sequence = 1049110
- strain_source = 1049111
- strain_additional_information = 1049112
- strain_code_sequence = 1049113
- other_patient_ids = 1052672
- other_patient_names = 1052673
- other_patient_ids_sequence = 1052674
- patient_s_birth_name = 1052677
- patient_s_age = 1052688
- patient_s_size = 1052704
- patient_s_size_code_sequence = 1052705
- patient_s_weight = 1052720
- patient_s_address = 1052736
- insurance_plan_identification = 1052752
- patient_s_mother_s_birth_name = 1052768
- military_rank = 1052800
- branch_of_service = 1052801
- medical_record_locator = 1052816
- referenced_patient_photo_sequence = 1052928
- medical_alerts = 1056768
- allergies = 1057040
- country_of_residence = 1057104
- region_of_residence = 1057106
- patient_s_telephone_numbers = 1057108
- patient_s_telecom_information = 1057109
- ethnic_group = 1057120
- occupation = 1057152
- smoking_status = 1057184
- additional_patient_history = 1057200
- pregnancy_status = 1057216
- last_menstrual_date = 1057232
- patient_s_religious_preference = 1057264
- patient_species_description = 1057281
- patient_species_code_sequence = 1057282
- patient_s_sex_neutered = 1057283
- anatomical_orientation_type = 1057296
- patient_breed_description = 1057426
- patient_breed_code_sequence = 1057427
- breed_registration_sequence = 1057428
- breed_registration_number = 1057429
- breed_registry_code_sequence = 1057430
- responsible_person = 1057431
- responsible_person_role = 1057432
- responsible_organization = 1057433
- patient_comments = 1064960
- examined_body_thickness = 1086513
- clinical_trial_sponsor_name = 1179664
- clinical_trial_protocol_id = 1179680
- clinical_trial_protocol_name = 1179681
- clinical_trial_site_id = 1179696
- clinical_trial_site_name = 1179697
- clinical_trial_subject_id = 1179712
- clinical_trial_subject_reading_id = 1179714
- clinical_trial_time_point_id = 1179728
- clinical_trial_time_point_description = 1179729
- clinical_trial_coordinating_center_name = 1179744
- patient_identity_removed = 1179746
- de_identification_method = 1179747
- de_identification_method_code_sequence = 1179748
- clinical_trial_series_id = 1179761
- clinical_trial_series_description = 1179762
- clinical_trial_protocol_ethics_committee_name = 1179777
- clinical_trial_protocol_ethics_committee_approval_number = 1179778
- consent_for_clinical_trial_use_sequence = 1179779
- distribution_type = 1179780
- consent_for_distribution_flag = 1179781
- cad_file_format = 1310755
- component_reference_system = 1310756
- component_manufacturing_procedure = 1310757
- component_manufacturer = 1310760
- material_thickness = 1310768
- material_pipe_diameter = 1310770
- material_isolation_diameter = 1310772
- material_grade = 1310786
- material_properties_description = 1310788
- material_properties_file_format__retired_ = 1310789
- material_notes = 1310790
- component_shape = 1310800
- curvature_type = 1310802
- outer_diameter = 1310804
- inner_diameter = 1310806
- component_welder_ids = 1310976
- secondary_approval_status = 1310977
- secondary_review_date = 1310978
- secondary_review_time = 1310979
- secondary_reviewer_name = 1310980
- repair_id = 1310981
- multiple_component_approval_sequence = 1310982
- other_approval_status = 1310983
- other_secondary_approval_status = 1310984
- actual_environmental_conditions = 1314832
- expiry_date = 1314848
- environmental_conditions = 1314880
- evaluator_sequence = 1318914
- evaluator_number = 1318916
- evaluator_name = 1318918
- evaluation_attempt = 1318920
- indication_sequence = 1318930
- indication_number = 1318932
- indication_label = 1318934
- indication_description = 1318936
- indication_type = 1318938
- indication_disposition = 1318940
- indication_roi_sequence = 1318942
- indication_physical_property_sequence = 1318960
- property_label = 1318962
- coordinate_system_number_of_axes = 1319426
- coordinate_system_axes_sequence = 1319428
- coordinate_system_axis_description = 1319430
- coordinate_system_data_set_mapping = 1319432
- coordinate_system_axis_number = 1319434
- coordinate_system_axis_type = 1319436
- coordinate_system_axis_units = 1319438
- coordinate_system_axis_values = 1319440
- coordinate_system_transform_sequence = 1319456
- transform_description = 1319458
- transform_number_of_axes = 1319460
- transform_order_of_axes = 1319462
- transformed_axis_units = 1319464
- coordinate_system_transform_rotation_and_scale_matrix = 1319466
- coordinate_system_transform_translation_matrix = 1319468
- internal_detector_frame_time = 1323025
- number_of_frames_integrated = 1323026
- detector_temperature_sequence = 1323040
- sensor_name = 1323042
- horizontal_offset_of_sensor = 1323044
- vertical_offset_of_sensor = 1323046
- sensor_temperature = 1323048
- dark_current_sequence = 1323072
- dark_current_counts = 1323088
- gain_correction_reference_sequence = 1323104
- air_counts = 1323120
- kv_used_in_gain_calibration = 1323121
- ma_used_in_gain_calibration = 1323122
- number_of_frames_used_for_integration = 1323123
- filter_material_used_in_gain_calibration = 1323124
- filter_thickness_used_in_gain_calibration = 1323125
- date_of_gain_calibration = 1323126
- time_of_gain_calibration = 1323127
- bad_pixel_image = 1323136
- calibration_notes = 1323161
- pulser_equipment_sequence = 1327106
- pulser_type = 1327108
- pulser_notes = 1327110
- receiver_equipment_sequence = 1327112
- amplifier_type = 1327114
- receiver_notes = 1327116
- pre_amplifier_equipment_sequence = 1327118
- pre_amplifier_notes = 1327119
- transmit_transducer_sequence = 1327120
- receive_transducer_sequence = 1327121
- number_of_elements = 1327122
- element_shape = 1327123
- element_dimension_a = 1327124
- element_dimension_b = 1327125
- element_pitch_a = 1327126
- measured_beam_dimension_a = 1327127
- measured_beam_dimension_b = 1327128
- location_of_measured_beam_diameter = 1327129
- nominal_frequency = 1327130
- measured_center_frequency = 1327131
- measured_bandwidth = 1327132
- element_pitch_b = 1327133
- pulser_settings_sequence = 1327136
- pulse_width = 1327138
- excitation_frequency = 1327140
- modulation_type = 1327142
- damping = 1327144
- receiver_settings_sequence = 1327152
- acquired_soundpath_length = 1327153
- acquisition_compression_type = 1327154
- acquisition_sample_size = 1327155
- rectifier_smoothing = 1327156
- dac_sequence = 1327157
- dac_type = 1327158
- dac_gain_points = 1327160
- dac_time_points = 1327162
- dac_amplitude = 1327164
- pre_amplifier_settings_sequence = 1327168
- transmit_transducer_settings_sequence = 1327184
- receive_transducer_settings_sequence = 1327185
- incident_angle = 1327186
- coupling_technique = 1327188
- coupling_medium = 1327190
- coupling_velocity = 1327191
- probe_center_location_x = 1327192
- probe_center_location_z = 1327193
- sound_path_length = 1327194
- delay_law_identifier = 1327196
- gate_settings_sequence = 1327200
- gate_threshold = 1327202
- velocity_of_sound = 1327204
- calibration_settings_sequence = 1327216
- calibration_procedure = 1327218
- procedure_version = 1327220
- procedure_creation_date = 1327222
- procedure_expiration_date = 1327224
- procedure_last_modified_date = 1327226
- calibration_time = 1327228
- calibration_date = 1327230
- probe_drive_equipment_sequence = 1327232
- drive_type = 1327233
- probe_drive_notes = 1327234
- drive_probe_sequence = 1327235
- probe_inductance = 1327236
- probe_resistance = 1327237
- receive_probe_sequence = 1327238
- probe_drive_settings_sequence = 1327239
- bridge_resistors = 1327240
- probe_orientation_angle = 1327241
- user_selected_gain_y = 1327243
- user_selected_phase = 1327244
- user_selected_offset_x = 1327245
- user_selected_offset_y = 1327246
- channel_settings_sequence = 1327249
- channel_threshold = 1327250
- scanner_settings_sequence = 1327258
- scan_procedure = 1327259
- translation_rate_x = 1327260
- translation_rate_y = 1327261
- channel_overlap = 1327263
- image_quality_indicator_type = 1327264
- image_quality_indicator_material = 1327265
- image_quality_indicator_size = 1327266
- linac_energy = 1331202
- linac_output = 1331204
- active_aperture = 1331456
- total_aperture = 1331457
- aperture_elevation = 1331458
- main_lobe_angle = 1331459
- main_roof_angle = 1331460
- connector_type = 1331461
- wedge_model_number = 1331462
- wedge_angle_float = 1331463
- wedge_roof_angle = 1331464
- wedge_element_1_position = 1331465
- wedge_material_velocity = 1331466
- wedge_material = 1331467
- wedge_offset_z = 1331468
- wedge_origin_offset_x = 1331469
- wedge_time_delay = 1331470
- wedge_name = 1331471
- wedge_manufacturer_name = 1331472
- wedge_description = 1331473
- nominal_beam_angle = 1331474
- wedge_offset_x = 1331475
- wedge_offset_y = 1331476
- wedge_total_length = 1331477
- wedge_in_contact_length = 1331478
- wedge_front_gap = 1331479
- wedge_total_height = 1331480
- wedge_front_height = 1331481
- wedge_rear_height = 1331482
- wedge_total_width = 1331483
- wedge_in_contact_width = 1331484
- wedge_chamfer_height = 1331485
- wedge_curve = 1331486
- radius_along_the_wedge = 1331487
- contrast_bolus_agent = 1572880
- contrast_bolus_agent_sequence = 1572882
- contrast_bolus_t1_relaxivity = 1572883
- contrast_bolus_administration_route_sequence = 1572884
- body_part_examined = 1572885
- scanning_sequence = 1572896
- sequence_variant = 1572897
- scan_options = 1572898
- mr_acquisition_type = 1572899
- sequence_name = 1572900
- angio_flag = 1572901
- intervention_drug_information_sequence = 1572902
- intervention_drug_stop_time = 1572903
- intervention_drug_dose = 1572904
- intervention_drug_code_sequence = 1572905
- additional_drug_sequence = 1572906
- radionuclide = 1572912
- radiopharmaceutical = 1572913
- energy_window_centerline = 1572914
- energy_window_total_width = 1572915
- intervention_drug_name = 1572916
- intervention_drug_start_time = 1572917
- intervention_sequence = 1572918
- therapy_type = 1572919
- intervention_status = 1572920
- therapy_description = 1572921
- intervention_description = 1572922
- cine_rate = 1572928
- initial_cine_run_state = 1572930
- slice_thickness = 1572944
- kvp = 1572960
- counts_accumulated = 1572976
- acquisition_termination_condition = 1572977
- effective_duration = 1572978
- acquisition_start_condition = 1572979
- acquisition_start_condition_data = 1572980
- acquisition_termination_condition_data = 1572981
- repetition_time = 1572992
- echo_time = 1572993
- inversion_time = 1572994
- number_of_averages = 1572995
- imaging_frequency = 1572996
- imaged_nucleus = 1572997
- echo_number_s_ = 1572998
- magnetic_field_strength = 1572999
- spacing_between_slices = 1573000
- number_of_phase_encoding_steps = 1573001
- data_collection_diameter = 1573008
- echo_train_length = 1573009
- percent_sampling = 1573011
- percent_phase_field_of_view = 1573012
- pixel_bandwidth = 1573013
- device_serial_number = 1576960
- device_uid = 1576962
- device_id = 1576963
- plate_id = 1576964
- generator_id = 1576965
- grid_id = 1576966
- cassette_id = 1576967
- gantry_id = 1576968
- secondary_capture_device_id = 1576976
- hardcopy_creation_device_id = 1576977
- date_of_secondary_capture = 1576978
- time_of_secondary_capture = 1576980
- secondary_capture_device_manufacturer = 1576982
- hardcopy_device_manufacturer = 1576983
- secondary_capture_device_manufacturer_s_model_name = 1576984
- secondary_capture_device_software_versions = 1576985
- hardcopy_device_software_version = 1576986
- hardcopy_device_manufacturer_s_model_name = 1576987
- software_version_s_ = 1576992
- video_image_format_acquired = 1576994
- digital_image_format_acquired = 1576995
- protocol_name = 1577008
- contrast_bolus_route = 1577024
- contrast_bolus_volume = 1577025
- contrast_bolus_start_time = 1577026
- contrast_bolus_stop_time = 1577027
- contrast_bolus_total_dose = 1577028
- syringe_counts = 1577029
- contrast_flow_rate = 1577030
- contrast_flow_duration = 1577031
- contrast_bolus_ingredient = 1577032
- contrast_bolus_ingredient_concentration = 1577033
- spatial_resolution = 1577040
- trigger_time = 1577056
- trigger_source_or_type = 1577057
- nominal_interval = 1577058
- frame_time = 1577059
- cardiac_framing_type = 1577060
- frame_time_vector = 1577061
- frame_delay = 1577062
- image_trigger_delay = 1577063
- multiplex_group_time_offset = 1577064
- trigger_time_offset = 1577065
- synchronization_trigger = 1577066
- synchronization_channel = 1577068
- trigger_sample_position = 1577070
- radiopharmaceutical_route = 1577072
- radiopharmaceutical_volume = 1577073
- radiopharmaceutical_start_time = 1577074
- radiopharmaceutical_stop_time = 1577075
- radionuclide_total_dose = 1577076
- radionuclide_half_life = 1577077
- radionuclide_positron_fraction = 1577078
- radiopharmaceutical_specific_activity = 1577079
- radiopharmaceutical_start_datetime = 1577080
- radiopharmaceutical_stop_datetime = 1577081
- beat_rejection_flag = 1577088
- low_r_r_value = 1577089
- high_r_r_value = 1577090
- intervals_acquired = 1577091
- intervals_rejected = 1577092
- pvc_rejection = 1577093
- skip_beats = 1577094
- heart_rate = 1577096
- cardiac_number_of_images = 1577104
- trigger_window = 1577108
- reconstruction_diameter = 1577216
- distance_source_to_detector = 1577232
- distance_source_to_patient = 1577233
- estimated_radiographic_magnification_factor = 1577236
- gantry_detector_tilt = 1577248
- gantry_detector_slew = 1577249
- table_height = 1577264
- table_traverse = 1577265
- table_motion = 1577268
- table_vertical_increment = 1577269
- table_lateral_increment = 1577270
- table_longitudinal_increment = 1577271
- table_angle = 1577272
- table_type = 1577274
- rotation_direction = 1577280
- angular_position = 1577281
- radial_position = 1577282
- scan_arc = 1577283
- angular_step = 1577284
- center_of_rotation_offset = 1577285
- rotation_offset = 1577286
- field_of_view_shape = 1577287
- field_of_view_dimension_s_ = 1577289
- exposure_time = 1577296
- x_ray_tube_current = 1577297
- exposure = 1577298
- exposure_in__as = 1577299
- average_pulse_width = 1577300
- radiation_setting = 1577301
- rectification_type = 1577302
- radiation_mode = 1577306
- image_and_fluoroscopy_area_dose_product = 1577310
- filter_type = 1577312
- type_of_filters = 1577313
- intensifier_size = 1577314
- imager_pixel_spacing = 1577316
- grid = 1577318
- generator_power = 1577328
- collimator_grid_name = 1577344
- collimator_type = 1577345
- focal_distance = 1577346
- x_focus_center = 1577347
- y_focus_center = 1577348
- focal_spot_s_ = 1577360
- anode_target_material = 1577361
- body_part_thickness = 1577376
- compression_force = 1577378
- paddle_description = 1577380
- date_of_last_calibration = 1577472
- time_of_last_calibration = 1577473
- datetime_of_last_calibration = 1577474
- convolution_kernel = 1577488
- upper_lower_pixel_values = 1577536
- actual_frame_duration = 1577538
- count_rate = 1577539
- preferred_playback_sequencing = 1577540
- receive_coil_name = 1577552
- transmit_coil_name = 1577553
- plate_type = 1577568
- phosphor_type = 1577569
- water_equivalent_diameter = 1577585
- water_equivalent_diameter_calculation_method_code_sequence = 1577586
- scan_velocity = 1577728
- whole_body_technique = 1577729
- scan_length = 1577730
- acquisition_matrix = 1577744
- in_plane_phase_encoding_direction = 1577746
- flip_angle = 1577748
- variable_flip_angle_flag = 1577749
- sar = 1577750
- db_dt = 1577752
- b1rms = 1577760
- acquisition_device_processing_description = 1577984
- acquisition_device_processing_code = 1577985
- cassette_orientation = 1577986
- cassette_size = 1577987
- exposures_on_plate = 1577988
- relative_x_ray_exposure = 1577989
- exposure_index = 1578001
- target_exposure_index = 1578002
- deviation_index = 1578003
- column_angulation = 1578064
- tomo_layer_height = 1578080
- tomo_angle = 1578096
- tomo_time = 1578112
- tomo_type = 1578128
- tomo_class = 1578129
- number_of_tomosynthesis_source_images = 1578133
- positioner_motion = 1578240
- positioner_type = 1578248
- positioner_primary_angle = 1578256
- positioner_secondary_angle = 1578257
- positioner_primary_angle_increment = 1578272
- positioner_secondary_angle_increment = 1578273
- detector_primary_angle = 1578288
- detector_secondary_angle = 1578289
- shutter_shape = 1578496
- shutter_left_vertical_edge = 1578498
- shutter_right_vertical_edge = 1578500
- shutter_upper_horizontal_edge = 1578502
- shutter_lower_horizontal_edge = 1578504
- center_of_circular_shutter = 1578512
- radius_of_circular_shutter = 1578514
- vertices_of_the_polygonal_shutter = 1578528
- shutter_presentation_value = 1578530
- shutter_overlay_group = 1578531
- shutter_presentation_color_cielab_value = 1578532
- collimator_shape = 1578752
- collimator_left_vertical_edge = 1578754
- collimator_right_vertical_edge = 1578756
- collimator_upper_horizontal_edge = 1578758
- collimator_lower_horizontal_edge = 1578760
- center_of_circular_collimator = 1578768
- radius_of_circular_collimator = 1578770
- vertices_of_the_polygonal_collimator = 1578784
- acquisition_time_synchronized = 1579008
- time_source = 1579009
- time_distribution_protocol = 1579010
- ntp_source_address = 1579011
- page_number_vector = 1581057
- frame_label_vector = 1581058
- frame_primary_angle_vector = 1581059
- frame_secondary_angle_vector = 1581060
- slice_location_vector = 1581061
- display_window_label_vector = 1581062
- nominal_scanned_pixel_spacing = 1581072
- digitizing_device_transport_direction = 1581088
- rotation_of_scanned_film = 1581104
- biopsy_target_sequence = 1581121
- target_uid = 1581122
- localizing_cursor_position = 1581123
- calculated_target_position = 1581124
- target_label = 1581125
- displayed_z_value = 1581126
- ivus_acquisition = 1585408
- ivus_pullback_rate = 1585409
- ivus_gated_rate = 1585410
- ivus_pullback_start_frame_number = 1585411
- ivus_pullback_stop_frame_number = 1585412
- lesion_number = 1585413
- acquisition_comments = 1589248
- output_power = 1593344
- transducer_data = 1593360
- focus_depth = 1593362
- processing_function = 1593376
- postprocessing_function = 1593377
- mechanical_index = 1593378
- bone_thermal_index = 1593380
- cranial_thermal_index = 1593382
- soft_tissue_thermal_index = 1593383
- soft_tissue_focus_thermal_index = 1593384
- soft_tissue_surface_thermal_index = 1593385
- dynamic_range = 1593392
- total_gain = 1593408
- depth_of_scan_field = 1593424
- patient_position = 1593600
- view_position = 1593601
- projection_eponymous_name_code_sequence = 1593604
- image_transformation_matrix = 1593872
- image_translation_vector = 1593874
- sensitivity = 1597440
- sequence_of_ultrasound_regions = 1597457
- region_spatial_format = 1597458
- region_data_type = 1597460
- region_flags = 1597462
- region_location_min_x0 = 1597464
- region_location_min_y0 = 1597466
- region_location_max_x1 = 1597468
- region_location_max_y1 = 1597470
- reference_pixel_x0 = 1597472
- reference_pixel_y0 = 1597474
- physical_units_x_direction = 1597476
- physical_units_y_direction = 1597478
- reference_pixel_physical_value_x = 1597480
- reference_pixel_physical_value_y = 1597482
- physical_delta_x = 1597484
- physical_delta_y = 1597486
- transducer_frequency = 1597488
- transducer_type = 1597489
- pulse_repetition_frequency = 1597490
- doppler_correction_angle = 1597492
- steering_angle = 1597494
- doppler_sample_volume_x_position__retired_ = 1597496
- doppler_sample_volume_x_position = 1597497
- doppler_sample_volume_y_position__retired_ = 1597498
- doppler_sample_volume_y_position = 1597499
- tm_line_position_x0__retired_ = 1597500
- tm_line_position_x0 = 1597501
- tm_line_position_y0__retired_ = 1597502
- tm_line_position_y0 = 1597503
- tm_line_position_x1__retired_ = 1597504
- tm_line_position_x1 = 1597505
- tm_line_position_y1__retired_ = 1597506
- tm_line_position_y1 = 1597507
- pixel_component_organization = 1597508
- pixel_component_mask = 1597510
- pixel_component_range_start = 1597512
- pixel_component_range_stop = 1597514
- pixel_component_physical_units = 1597516
- pixel_component_data_type = 1597518
- number_of_table_break_points = 1597520
- table_of_x_break_points = 1597522
- table_of_y_break_points = 1597524
- number_of_table_entries = 1597526
- table_of_pixel_values = 1597528
- table_of_parameter_values = 1597530
- r_wave_time_vector = 1597536
- detector_conditions_nominal_flag = 1601536
- detector_temperature = 1601537
- detector_type = 1601540
- detector_configuration = 1601541
- detector_description = 1601542
- detector_mode = 1601544
- detector_id = 1601546
- date_of_last_detector_calibration = 1601548
- time_of_last_detector_calibration = 1601550
- exposures_on_detector_since_last_calibration = 1601552
- exposures_on_detector_since_manufactured = 1601553
- detector_time_since_last_exposure = 1601554
- detector_active_time = 1601556
- detector_activation_offset_from_exposure = 1601558
- detector_binning = 1601562
- detector_element_physical_size = 1601568
- detector_element_spacing = 1601570
- detector_active_shape = 1601572
- detector_active_dimension_s_ = 1601574
- detector_active_origin = 1601576
- detector_manufacturer_name = 1601578
- detector_manufacturer_s_model_name = 1601579
- field_of_view_origin = 1601584
- field_of_view_rotation = 1601586
- field_of_view_horizontal_flip = 1601588
- pixel_data_area_origin_relative_to_fov = 1601590
- pixel_data_area_rotation_angle_relative_to_fov = 1601592
- grid_absorbing_material = 1601600
- grid_spacing_material = 1601601
- grid_thickness = 1601602
- grid_pitch = 1601604
- grid_aspect_ratio = 1601606
- grid_period = 1601608
- grid_focal_distance = 1601612
- filter_material = 1601616
- filter_thickness_minimum = 1601618
- filter_thickness_maximum = 1601620
- filter_beam_path_length_minimum = 1601622
- filter_beam_path_length_maximum = 1601624
- exposure_control_mode = 1601632
- exposure_control_mode_description = 1601634
- exposure_status = 1601636
- phototimer_setting = 1601637
- exposure_time_in__s = 1605968
- x_ray_tube_current_in__a = 1605969
- content_qualification = 1609732
- pulse_sequence_name = 1609733
- mr_imaging_modifier_sequence = 1609734
- echo_pulse_sequence = 1609736
- inversion_recovery = 1609737
- flow_compensation = 1609744
- multiple_spin_echo = 1609745
- multi_planar_excitation = 1609746
- phase_contrast = 1609748
- time_of_flight_contrast = 1609749
- spoiling = 1609750
- steady_state_pulse_sequence = 1609751
- echo_planar_pulse_sequence = 1609752
- tag_angle_first_axis = 1609753
- magnetization_transfer = 1609760
- t2_preparation = 1609761
- blood_signal_nulling = 1609762
- saturation_recovery = 1609764
- spectrally_selected_suppression = 1609765
- spectrally_selected_excitation = 1609766
- spatial_pre_saturation = 1609767
- tagging = 1609768
- oversampling_phase = 1609769
- tag_spacing_first_dimension = 1609776
- geometry_of_k_space_traversal = 1609778
- segmented_k_space_traversal = 1609779
- rectilinear_phase_encode_reordering = 1609780
- tag_thickness = 1609781
- partial_fourier_direction = 1609782
- cardiac_synchronization_technique = 1609783
- receive_coil_manufacturer_name = 1609793
- mr_receive_coil_sequence = 1609794
- receive_coil_type = 1609795
- quadrature_receive_coil = 1609796
- multi_coil_definition_sequence = 1609797
- multi_coil_configuration = 1609798
- multi_coil_element_name = 1609799
- multi_coil_element_used = 1609800
- mr_transmit_coil_sequence = 1609801
- transmit_coil_manufacturer_name = 1609808
- transmit_coil_type = 1609809
- spectral_width = 1609810
- chemical_shift_reference = 1609811
- volume_localization_technique = 1609812
- mr_acquisition_frequency_encoding_steps = 1609816
- de_coupling = 1609817
- de_coupled_nucleus = 1609824
- de_coupling_frequency = 1609825
- de_coupling_method = 1609826
- de_coupling_chemical_shift_reference = 1609827
- k_space_filtering = 1609828
- time_domain_filtering = 1609829
- number_of_zero_fills = 1609830
- baseline_correction = 1609831
- parallel_reduction_factor_in_plane = 1609833
- cardiac_r_r_interval_specified = 1609840
- acquisition_duration = 1609843
- frame_acquisition_datetime = 1609844
- diffusion_directionality = 1609845
- diffusion_gradient_direction_sequence = 1609846
- parallel_acquisition = 1609847
- parallel_acquisition_technique = 1609848
- inversion_times = 1609849
- metabolite_map_description = 1609856
- partial_fourier = 1609857
- effective_echo_time = 1609858
- metabolite_map_code_sequence = 1609859
- chemical_shift_sequence = 1609860
- cardiac_signal_source = 1609861
- diffusion_b_value = 1609863
- diffusion_gradient_orientation = 1609865
- velocity_encoding_direction = 1609872
- velocity_encoding_minimum_value = 1609873
- velocity_encoding_acquisition_sequence = 1609874
- number_of_k_space_trajectories = 1609875
- coverage_of_k_space = 1609876
- spectroscopy_acquisition_phase_rows = 1609877
- parallel_reduction_factor_in_plane__retired_ = 1609878
- transmitter_frequency = 1609880
- resonant_nucleus = 1609984
- frequency_correction = 1609985
- mr_spectroscopy_fov_geometry_sequence = 1609987
- slab_thickness = 1609988
- slab_orientation = 1609989
- mid_slab_position = 1609990
- mr_spatial_saturation_sequence = 1609991
- mr_timing_and_related_parameters_sequence = 1610002
- mr_echo_sequence = 1610004
- mr_modifier_sequence = 1610005
- mr_diffusion_sequence = 1610007
- cardiac_synchronization_sequence = 1610008
- mr_averages_sequence = 1610009
- mr_fov_geometry_sequence = 1610021
- volume_localization_sequence = 1610022
- spectroscopy_acquisition_data_columns = 1610023
- diffusion_anisotropy_type = 1610055
- frame_reference_datetime = 1610065
- mr_metabolite_map_sequence = 1610066
- parallel_reduction_factor_out_of_plane = 1610069
- spectroscopy_acquisition_out_of_plane_phase_steps = 1610073
- bulk_motion_status = 1610086
- parallel_reduction_factor_second_in_plane = 1610088
- cardiac_beat_rejection_technique = 1610089
- respiratory_motion_compensation_technique = 1610096
- respiratory_signal_source = 1610097
- bulk_motion_compensation_technique = 1610098
- bulk_motion_signal_source = 1610099
- applicable_safety_standard_agency = 1610100
- applicable_safety_standard_description = 1610101
- operating_mode_sequence = 1610102
- operating_mode_type = 1610103
- operating_mode = 1610104
- specific_absorption_rate_definition = 1610105
- gradient_output_type = 1610112
- specific_absorption_rate_value = 1610113
- gradient_output = 1610114
- flow_compensation_direction = 1610115
- tagging_delay = 1610116
- respiratory_motion_compensation_technique_description = 1610117
- respiratory_signal_source_id = 1610118
- chemical_shift_minimum_integration_limit_in_hz = 1610133
- chemical_shift_maximum_integration_limit_in_hz = 1610134
- mr_velocity_encoding_sequence = 1610135
- first_order_phase_correction = 1610136
- water_referenced_phase_correction = 1610137
- mr_spectroscopy_acquisition_type = 1610240
- respiratory_cycle_position = 1610260
- velocity_encoding_maximum_value = 1610263
- tag_spacing_second_dimension = 1610264
- tag_angle_second_axis = 1610265
- frame_acquisition_duration = 1610272
- mr_image_frame_type_sequence = 1610278
- mr_spectroscopy_frame_type_sequence = 1610279
- mr_acquisition_phase_encoding_steps_in_plane = 1610289
- mr_acquisition_phase_encoding_steps_out_of_plane = 1610290
- spectroscopy_acquisition_phase_columns = 1610292
- cardiac_cycle_position = 1610294
- specific_absorption_rate_sequence = 1610297
- rf_echo_train_length = 1610304
- gradient_echo_train_length = 1610305
- arterial_spin_labeling_contrast = 1610320
- mr_arterial_spin_labeling_sequence = 1610321
- asl_technique_description = 1610322
- asl_slab_number = 1610323
- asl_slab_thickness = 1610324
- asl_slab_orientation = 1610325
- asl_mid_slab_position = 1610326
- asl_context = 1610327
- asl_pulse_train_duration = 1610328
- asl_crusher_flag = 1610329
- asl_crusher_flow_limit = 1610330
- asl_crusher_description = 1610331
- asl_bolus_cut_off_flag = 1610332
- asl_bolus_cut_off_timing_sequence = 1610333
- asl_bolus_cut_off_technique = 1610334
- asl_bolus_cut_off_delay_time = 1610335
- asl_slab_sequence = 1610336
- chemical_shift_minimum_integration_limit_in_ppm = 1610389
- chemical_shift_maximum_integration_limit_in_ppm = 1610390
- water_reference_acquisition = 1610391
- echo_peak_position = 1610392
- ct_acquisition_type_sequence = 1610497
- acquisition_type = 1610498
- tube_angle = 1610499
- ct_acquisition_details_sequence = 1610500
- revolution_time = 1610501
- single_collimation_width = 1610502
- total_collimation_width = 1610503
- ct_table_dynamics_sequence = 1610504
- table_speed = 1610505
- table_feed_per_rotation = 1610512
- spiral_pitch_factor = 1610513
- ct_geometry_sequence = 1610514
- data_collection_center__patient_ = 1610515
- ct_reconstruction_sequence = 1610516
- reconstruction_algorithm = 1610517
- convolution_kernel_group = 1610518
- reconstruction_field_of_view = 1610519
- reconstruction_target_center__patient_ = 1610520
- reconstruction_angle = 1610521
- image_filter = 1610528
- ct_exposure_sequence = 1610529
- reconstruction_pixel_spacing = 1610530
- exposure_modulation_type = 1610531
- estimated_dose_saving = 1610532
- ct_x_ray_details_sequence = 1610533
- ct_position_sequence = 1610534
- table_position = 1610535
- exposure_time_in_ms = 1610536
- ct_image_frame_type_sequence = 1610537
- x_ray_tube_current_in_ma = 1610544
- exposure_in_mas = 1610546
- constant_volume_flag = 1610547
- fluoroscopy_flag = 1610548
- distance_source_to_data_collection_center = 1610549
- contrast_bolus_agent_number = 1610551
- contrast_bolus_ingredient_code_sequence = 1610552
- contrast_administration_profile_sequence = 1610560
- contrast_bolus_usage_sequence = 1610561
- contrast_bolus_agent_administered = 1610562
- contrast_bolus_agent_detected = 1610563
- contrast_bolus_agent_phase = 1610564
- ctdivol = 1610565
- ctdi_phantom_type_code_sequence = 1610566
- calcium_scoring_mass_factor_patient = 1610577
- calcium_scoring_mass_factor_device = 1610578
- energy_weighting_factor = 1610579
- ct_additional_x_ray_source_sequence = 1610592
- projection_pixel_calibration_sequence = 1610753
- distance_source_to_isocenter = 1610754
- distance_object_to_table_top = 1610755
- object_pixel_spacing_in_center_of_beam = 1610756
- positioner_position_sequence = 1610757
- table_position_sequence = 1610758
- collimator_shape_sequence = 1610759
- planes_in_acquisition = 1610768
- xa_xrf_frame_characteristics_sequence = 1610770
- frame_acquisition_sequence = 1610775
- x_ray_receptor_type = 1610784
- acquisition_protocol_name = 1610787
- acquisition_protocol_description = 1610788
- contrast_bolus_ingredient_opaque = 1610789
- distance_receptor_plane_to_detector_housing = 1610790
- intensifier_active_shape = 1610791
- intensifier_active_dimension_s_ = 1610792
- physical_detector_size = 1610793
- position_of_isocenter_projection = 1610800
- field_of_view_sequence = 1610802
- field_of_view_description = 1610803
- exposure_control_sensing_regions_sequence = 1610804
- exposure_control_sensing_region_shape = 1610805
- exposure_control_sensing_region_left_vertical_edge = 1610806
- exposure_control_sensing_region_right_vertical_edge = 1610807
- exposure_control_sensing_region_upper_horizontal_edge = 1610808
- exposure_control_sensing_region_lower_horizontal_edge = 1610809
- center_of_circular_exposure_control_sensing_region = 1610816
- radius_of_circular_exposure_control_sensing_region = 1610817
- vertices_of_the_polygonal_exposure_control_sensing_region = 1610818
- column_angulation__patient_ = 1610823
- beam_angle = 1610825
- frame_detector_parameters_sequence = 1610833
- calculated_anatomy_thickness = 1610834
- calibration_sequence = 1610837
- object_thickness_sequence = 1610838
- plane_identification = 1610839
- field_of_view_dimension_s__in_float = 1610849
- isocenter_reference_system_sequence = 1610850
- positioner_isocenter_primary_angle = 1610851
- positioner_isocenter_secondary_angle = 1610852
- positioner_isocenter_detector_rotation_angle = 1610853
- table_x_position_to_isocenter = 1610854
- table_y_position_to_isocenter = 1610855
- table_z_position_to_isocenter = 1610856
- table_horizontal_rotation_angle = 1610857
- table_head_tilt_angle = 1610864
- table_cradle_tilt_angle = 1610865
- frame_display_shutter_sequence = 1610866
- acquired_image_area_dose_product = 1610867
- c_arm_positioner_tabletop_relationship = 1610868
- x_ray_geometry_sequence = 1610870
- irradiation_event_identification_sequence = 1610871
- x_ray_3d_frame_type_sequence = 1611012
- contributing_sources_sequence = 1611014
- x_ray_3d_acquisition_sequence = 1611015
- primary_positioner_scan_arc = 1611016
- secondary_positioner_scan_arc = 1611017
- primary_positioner_scan_start_angle = 1611024
- secondary_positioner_scan_start_angle = 1611025
- primary_positioner_increment = 1611028
- secondary_positioner_increment = 1611029
- start_acquisition_datetime = 1611030
- end_acquisition_datetime = 1611031
- primary_positioner_increment_sign = 1611032
- secondary_positioner_increment_sign = 1611033
- application_name = 1611044
- application_version = 1611045
- application_manufacturer = 1611046
- algorithm_type = 1611047
- algorithm_description = 1611048
- x_ray_3d_reconstruction_sequence = 1611056
- reconstruction_description = 1611057
- per_projection_acquisition_sequence = 1611064
- detector_position_sequence = 1611073
- x_ray_acquisition_dose_sequence = 1611074
- x_ray_source_isocenter_primary_angle = 1611075
- x_ray_source_isocenter_secondary_angle = 1611076
- breast_support_isocenter_primary_angle = 1611077
- breast_support_isocenter_secondary_angle = 1611078
- breast_support_x_position_to_isocenter = 1611079
- breast_support_y_position_to_isocenter = 1611080
- breast_support_z_position_to_isocenter = 1611081
- detector_isocenter_primary_angle = 1611088
- detector_isocenter_secondary_angle = 1611089
- detector_x_position_to_isocenter = 1611090
- detector_y_position_to_isocenter = 1611091
- detector_z_position_to_isocenter = 1611092
- x_ray_grid_sequence = 1611093
- x_ray_filter_sequence = 1611094
- detector_active_area_tlhc_position = 1611095
- detector_active_area_orientation = 1611096
- positioner_primary_angle_direction = 1611097
- diffusion_b_matrix_sequence = 1611265
- diffusion_b_value_xx = 1611266
- diffusion_b_value_xy = 1611267
- diffusion_b_value_xz = 1611268
- diffusion_b_value_yy = 1611269
- diffusion_b_value_yz = 1611270
- diffusion_b_value_zz = 1611271
- functional_mr_sequence = 1611297
- functional_settling_phase_frames_present = 1611298
- functional_sync_pulse = 1611299
- settling_phase_frame = 1611300
- decay_correction_datetime = 1611521
- start_density_threshold = 1611541
- start_relative_density_difference_threshold = 1611542
- start_cardiac_trigger_count_threshold = 1611543
- start_respiratory_trigger_count_threshold = 1611544
- termination_counts_threshold = 1611545
- termination_density_threshold = 1611552
- termination_relative_density_threshold = 1611553
- termination_time_threshold = 1611554
- termination_cardiac_trigger_count_threshold = 1611555
- termination_respiratory_trigger_count_threshold = 1611556
- detector_geometry = 1611557
- transverse_detector_separation = 1611558
- axial_detector_dimension = 1611559
- radiopharmaceutical_agent_number = 1611561
- pet_frame_acquisition_sequence = 1611570
- pet_detector_motion_details_sequence = 1611571
- pet_table_dynamics_sequence = 1611572
- pet_position_sequence = 1611573
- pet_frame_correction_factors_sequence = 1611574
- radiopharmaceutical_usage_sequence = 1611575
- attenuation_correction_source = 1611576
- number_of_iterations = 1611577
- number_of_subsets = 1611584
- pet_reconstruction_sequence = 1611593
- pet_frame_type_sequence = 1611601
- time_of_flight_information_used = 1611605
- reconstruction_type = 1611606
- decay_corrected = 1611608
- attenuation_corrected = 1611609
- scatter_corrected = 1611616
- dead_time_corrected = 1611617
- gantry_motion_corrected = 1611618
- patient_motion_corrected = 1611619
- count_loss_normalization_corrected = 1611620
- randoms_corrected = 1611621
- non_uniform_radial_sampling_corrected = 1611622
- sensitivity_calibrated = 1611623
- detector_normalization_correction = 1611624
- iterative_reconstruction_method = 1611625
- attenuation_correction_temporal_relationship = 1611632
- patient_physiological_state_sequence = 1611633
- patient_physiological_state_code_sequence = 1611634
- depth_s__of_focus = 1611777
- excluded_intervals_sequence = 1611779
- exclusion_start_datetime = 1611780
- exclusion_duration = 1611781
- us_image_description_sequence = 1611782
- image_data_type_sequence = 1611783
- data_type = 1611784
- transducer_scan_pattern_code_sequence = 1611785
- aliased_data_type = 1611787
- position_measuring_device_used = 1611788
- transducer_geometry_code_sequence = 1611789
- transducer_beam_steering_code_sequence = 1611790
- transducer_application_code_sequence = 1611791
- zero_velocity_pixel_value = 1611792
- contributing_equipment_sequence = 1613825
- contribution_datetime = 1613826
- contribution_description = 1613827
- study_instance_uid = 2097165
- series_instance_uid = 2097166
- study_id = 2097168
- series_number = 2097169
- acquisition_number = 2097170
- instance_number = 2097171
- isotope_number = 2097172
- phase_number = 2097173
- interval_number = 2097174
- time_slot_number = 2097175
- angle_number = 2097176
- item_number = 2097177
- patient_orientation = 2097184
- overlay_number = 2097186
- curve_number = 2097188
- lut_number = 2097190
- image_position = 2097200
- image_position__patient_ = 2097202
- image_orientation = 2097205
- image_orientation__patient_ = 2097207
- location = 2097232
- frame_of_reference_uid = 2097234
- laterality = 2097248
- image_laterality = 2097250
- image_geometry_type = 2097264
- masking_image = 2097280
- report_number = 2097322
- temporal_position_identifier = 2097408
- number_of_temporal_positions = 2097413
- temporal_resolution = 2097424
- synchronization_frame_of_reference_uid = 2097664
- sop_instance_uid_of_concatenation_source = 2097730
- series_in_study = 2101248
- acquisitions_in_series = 2101249
- images_in_acquisition = 2101250
- images_in_series = 2101251
- acquisitions_in_study = 2101252
- images_in_study = 2101253
- reference = 2101280
- position_reference_indicator = 2101312
- slice_location = 2101313
- other_study_numbers = 2101360
- number_of_patient_related_studies = 2101760
- number_of_patient_related_series = 2101762
- number_of_patient_related_instances = 2101764
- number_of_study_related_series = 2101766
- number_of_study_related_instances = 2101768
- number_of_series_related_instances = 2101769
- modifying_device_id = 2110465
- modified_image_id = 2110466
- modified_image_date = 2110467
- modifying_device_manufacturer = 2110468
- modified_image_time = 2110469
- modified_image_description = 2110470
- image_comments = 2113536
- original_image_identification = 2117632
- original_image_identification_nomenclature = 2117634
- stack_id = 2134102
- in_stack_position_number = 2134103
- frame_anatomy_sequence = 2134129
- frame_laterality = 2134130
- frame_content_sequence = 2134289
- plane_position_sequence = 2134291
- plane_orientation_sequence = 2134294
- temporal_position_index = 2134312
- nominal_cardiac_trigger_delay_time = 2134355
- nominal_cardiac_trigger_time_prior_to_r_peak = 2134356
- actual_cardiac_trigger_time_prior_to_r_peak = 2134357
- frame_acquisition_number = 2134358
- dimension_index_values = 2134359
- frame_comments = 2134360
- concatenation_uid = 2134369
- in_concatenation_number = 2134370
- in_concatenation_total_number = 2134371
- dimension_organization_uid = 2134372
- dimension_index_pointer = 2134373
- functional_group_pointer = 2134375
- unassigned_shared_converted_attributes_sequence = 2134384
- unassigned_per_frame_converted_attributes_sequence = 2134385
- conversion_source_attributes_sequence = 2134386
- dimension_index_private_creator = 2134547
- dimension_organization_sequence = 2134561
- dimension_index_sequence = 2134562
- concatenation_frame_offset_number = 2134568
- functional_group_private_creator = 2134584
- nominal_percentage_of_cardiac_phase = 2134593
- nominal_percentage_of_respiratory_phase = 2134597
- starting_respiratory_amplitude = 2134598
- starting_respiratory_phase = 2134599
- ending_respiratory_amplitude = 2134600
- ending_respiratory_phase = 2134601
- respiratory_trigger_type = 2134608
- r_r_interval_time_nominal = 2134609
- actual_cardiac_trigger_delay_time = 2134610
- respiratory_synchronization_sequence = 2134611
- respiratory_interval_time = 2134612
- nominal_respiratory_trigger_delay_time = 2134613
- respiratory_trigger_delay_threshold = 2134614
- actual_respiratory_trigger_delay_time = 2134615
- image_position__volume_ = 2134785
- image_orientation__volume_ = 2134786
- ultrasound_acquisition_geometry = 2134791
- apex_position = 2134792
- volume_to_transducer_mapping_matrix = 2134793
- volume_to_table_mapping_matrix = 2134794
- volume_to_transducer_relationship = 2134795
- patient_frame_of_reference_source = 2134796
- temporal_position_time_offset = 2134797
- plane_position__volume__sequence = 2134798
- plane_orientation__volume__sequence = 2134799
- temporal_position_sequence = 2134800
- dimension_organization_type = 2134801
- volume_frame_of_reference_uid = 2134802
- table_frame_of_reference_uid = 2134803
- dimension_description_label = 2135073
- patient_orientation_in_frame_sequence = 2135120
- frame_label = 2135123
- acquisition_index = 2135320
- contributing_sop_instances_reference_sequence = 2135337
- reconstruction_index = 2135350
- light_path_filter_pass_through_wavelength = 2228225
- light_path_filter_pass_band = 2228226
- image_path_filter_pass_through_wavelength = 2228227
- image_path_filter_pass_band = 2228228
- patient_eye_movement_commanded = 2228229
- patient_eye_movement_command_code_sequence = 2228230
- spherical_lens_power = 2228231
- cylinder_lens_power = 2228232
- cylinder_axis = 2228233
- emmetropic_magnification = 2228234
- intra_ocular_pressure = 2228235
- horizontal_field_of_view = 2228236
- pupil_dilated = 2228237
- degree_of_dilation = 2228238
- stereo_baseline_angle = 2228240
- stereo_baseline_displacement = 2228241
- stereo_horizontal_pixel_offset = 2228242
- stereo_vertical_pixel_offset = 2228243
- stereo_rotation = 2228244
- acquisition_device_type_code_sequence = 2228245
- illumination_type_code_sequence = 2228246
- light_path_filter_type_stack_code_sequence = 2228247
- image_path_filter_type_stack_code_sequence = 2228248
- lenses_code_sequence = 2228249
- channel_description_code_sequence = 2228250
- refractive_state_sequence = 2228251
- mydriatic_agent_code_sequence = 2228252
- relative_image_position_code_sequence = 2228253
- camera_angle_of_view = 2228254
- stereo_pairs_sequence = 2228256
- left_image_sequence = 2228257
- right_image_sequence = 2228258
- stereo_pairs_present = 2228264
- axial_length_of_the_eye = 2228272
- ophthalmic_frame_location_sequence = 2228273
- reference_coordinates = 2228274
- depth_spatial_resolution = 2228277
- maximum_depth_distortion = 2228278
- along_scan_spatial_resolution = 2228279
- maximum_along_scan_distortion = 2228280
- ophthalmic_image_orientation = 2228281
- depth_of_transverse_image = 2228289
- mydriatic_agent_concentration_units_sequence = 2228290
- across_scan_spatial_resolution = 2228296
- maximum_across_scan_distortion = 2228297
- mydriatic_agent_concentration = 2228302
- illumination_wave_length = 2228309
- illumination_power = 2228310
- illumination_bandwidth = 2228311
- mydriatic_agent_sequence = 2228312
- ophthalmic_axial_measurements_right_eye_sequence = 2232327
- ophthalmic_axial_measurements_left_eye_sequence = 2232328
- ophthalmic_axial_measurements_device_type = 2232329
- ophthalmic_axial_length_measurements_type = 2232336
- ophthalmic_axial_length_sequence = 2232338
- ophthalmic_axial_length = 2232345
- lens_status_code_sequence = 2232356
- vitreous_status_code_sequence = 2232357
- iol_formula_code_sequence = 2232360
- iol_formula_detail = 2232361
- keratometer_index = 2232371
- source_of_ophthalmic_axial_length_code_sequence = 2232373
- target_refraction = 2232375
- refractive_procedure_occurred = 2232377
- refractive_surgery_type_code_sequence = 2232384
- ophthalmic_ultrasound_method_code_sequence = 2232388
- ophthalmic_axial_length_measurements_sequence = 2232400
- iol_power = 2232403
- predicted_refractive_error = 2232404
- ophthalmic_axial_length_velocity = 2232409
- lens_status_description = 2232421
- vitreous_status_description = 2232422
- iol_power_sequence = 2232464
- lens_constant_sequence = 2232466
- iol_manufacturer = 2232467
- lens_constant_description = 2232468
- implant_name = 2232469
- keratometry_measurement_type_code_sequence = 2232470
- implant_part_number = 2232471
- referenced_ophthalmic_axial_measurements_sequence = 2232576
- ophthalmic_axial_length_measurements_segment_name_code_sequence = 2232577
- refractive_error_before_refractive_surgery_code_sequence = 2232579
- iol_power_for_exact_emmetropia = 2232609
- iol_power_for_exact_target_refraction = 2232610
- anterior_chamber_depth_definition_code_sequence = 2232613
- lens_thickness_sequence = 2232615
- anterior_chamber_depth_sequence = 2232616
- lens_thickness = 2232624
- anterior_chamber_depth = 2232625
- source_of_lens_thickness_data_code_sequence = 2232626
- source_of_anterior_chamber_depth_data_code_sequence = 2232627
- source_of_refractive_measurements_sequence = 2232628
- source_of_refractive_measurements_code_sequence = 2232629
- ophthalmic_axial_length_measurement_modified = 2232640
- ophthalmic_axial_length_data_source_code_sequence = 2232656
- ophthalmic_axial_length_acquisition_method_code_sequence = 2232659
- signal_to_noise_ratio = 2232661
- ophthalmic_axial_length_data_source_description = 2232665
- ophthalmic_axial_length_measurements_total_length_sequence = 2232848
- ophthalmic_axial_length_measurements_segmental_length_sequence = 2232849
- ophthalmic_axial_length_measurements_length_summation_sequence = 2232850
- ultrasound_ophthalmic_axial_length_measurements_sequence = 2232864
- optical_ophthalmic_axial_length_measurements_sequence = 2232869
- ultrasound_selected_ophthalmic_axial_length_sequence = 2232880
- ophthalmic_axial_length_selection_method_code_sequence = 2232912
- optical_selected_ophthalmic_axial_length_sequence = 2232917
- selected_segmental_ophthalmic_axial_length_sequence = 2232919
- selected_total_ophthalmic_axial_length_sequence = 2232928
- ophthalmic_axial_length_quality_metric_sequence = 2232930
- ophthalmic_axial_length_quality_metric_type_code_sequence = 2232933
- ophthalmic_axial_length_quality_metric_type_description = 2232947
- intraocular_lens_calculations_right_eye_sequence = 2233088
- intraocular_lens_calculations_left_eye_sequence = 2233104
- referenced_ophthalmic_axial_length_measurement_qc_image_sequence = 2233136
- ophthalmic_mapping_device_type = 2233365
- acquisition_method_code_sequence = 2233376
- acquisition_method_algorithm_sequence = 2233379
- ophthalmic_thickness_map_type_code_sequence = 2233398
- ophthalmic_thickness_mapping_normals_sequence = 2233411
- retinal_thickness_definition_code_sequence = 2233413
- pixel_value_mapping_to_coded_concept_sequence = 2233424
- mapped_pixel_value = 2233426
- pixel_value_mapping_explanation = 2233428
- ophthalmic_thickness_map_quality_threshold_sequence = 2233432
- ophthalmic_thickness_map_threshold_quality_rating = 2233440
- anatomic_structure_reference_point = 2233443
- registration_to_localizer_sequence = 2233445
- registered_localizer_units = 2233446
- registered_localizer_top_left_hand_corner = 2233447
- registered_localizer_bottom_right_hand_corner = 2233448
- ophthalmic_thickness_map_quality_rating_sequence = 2233456
- relevant_opt_attributes_sequence = 2233458
- transformation_method_code_sequence = 2233618
- transformation_algorithm_sequence = 2233619
- ophthalmic_axial_length_method = 2233621
- ophthalmic_fov = 2233623
- two_dimensional_to_three_dimensional_map_sequence = 2233624
- wide_field_ophthalmic_photography_quality_rating_sequence = 2233637
- wide_field_ophthalmic_photography_quality_threshold_sequence = 2233638
- wide_field_ophthalmic_photography_threshold_quality_rating = 2233639
- x_coordinates_center_pixel_view_angle = 2233640
- y_coordinates_center_pixel_view_angle = 2233641
- number_of_map_points = 2233648
- two_dimensional_to_three_dimensional_map_data = 2233649
- visual_field_horizontal_extent = 2359312
- visual_field_vertical_extent = 2359313
- visual_field_shape = 2359314
- screening_test_mode_code_sequence = 2359318
- maximum_stimulus_luminance = 2359320
- background_luminance = 2359328
- stimulus_color_code_sequence = 2359329
- background_illumination_color_code_sequence = 2359332
- stimulus_area = 2359333
- stimulus_presentation_time = 2359336
- fixation_sequence = 2359346
- fixation_monitoring_code_sequence = 2359347
- visual_field_catch_trial_sequence = 2359348
- fixation_checked_quantity = 2359349
- patient_not_properly_fixated_quantity = 2359350
- presented_visual_stimuli_data_flag = 2359351
- number_of_visual_stimuli = 2359352
- excessive_fixation_losses_data_flag = 2359353
- excessive_fixation_losses = 2359360
- stimuli_retesting_quantity = 2359362
- comments_on_patient_s_performance_of_visual_field = 2359364
- false_negatives_estimate_flag = 2359365
- false_negatives_estimate = 2359366
- negative_catch_trials_quantity = 2359368
- false_negatives_quantity = 2359376
- excessive_false_negatives_data_flag = 2359377
- excessive_false_negatives = 2359378
- false_positives_estimate_flag = 2359379
- false_positives_estimate = 2359380
- catch_trials_data_flag = 2359381
- positive_catch_trials_quantity = 2359382
- test_point_normals_data_flag = 2359383
- test_point_normals_sequence = 2359384
- global_deviation_probability_normals_flag = 2359385
- false_positives_quantity = 2359392
- excessive_false_positives_data_flag = 2359393
- excessive_false_positives = 2359394
- visual_field_test_normals_flag = 2359395
- results_normals_sequence = 2359396
- age_corrected_sensitivity_deviation_algorithm_sequence = 2359397
- global_deviation_from_normal = 2359398
- generalized_defect_sensitivity_deviation_algorithm_sequence = 2359399
- localized_deviation_from_normal = 2359400
- patient_reliability_indicator = 2359401
- visual_field_mean_sensitivity = 2359408
- global_deviation_probability = 2359409
- local_deviation_probability_normals_flag = 2359410
- localized_deviation_probability = 2359411
- short_term_fluctuation_calculated = 2359412
- short_term_fluctuation = 2359413
- short_term_fluctuation_probability_calculated = 2359414
- short_term_fluctuation_probability = 2359415
- corrected_localized_deviation_from_normal_calculated = 2359416
- corrected_localized_deviation_from_normal = 2359417
- corrected_localized_deviation_from_normal_probability_calculated = 2359424
- corrected_localized_deviation_from_normal_probability = 2359425
- global_deviation_probability_sequence = 2359427
- localized_deviation_probability_sequence = 2359429
- foveal_sensitivity_measured = 2359430
- foveal_sensitivity = 2359431
- visual_field_test_duration = 2359432
- visual_field_test_point_sequence = 2359433
- visual_field_test_point_x_coordinate = 2359440
- visual_field_test_point_y_coordinate = 2359441
- age_corrected_sensitivity_deviation_value = 2359442
- stimulus_results = 2359443
- sensitivity_value = 2359444
- retest_stimulus_seen = 2359445
- retest_sensitivity_value = 2359446
- visual_field_test_point_normals_sequence = 2359447
- quantified_defect = 2359448
- age_corrected_sensitivity_deviation_probability_value = 2359552
- generalized_defect_corrected_sensitivity_deviation_flag = 2359554
- generalized_defect_corrected_sensitivity_deviation_value = 2359555
- generalized_defect_corrected_sensitivity_deviation_probability_value = 2359556
- minimum_sensitivity_value = 2359557
- blind_spot_localized = 2359558
- blind_spot_x_coordinate = 2359559
- blind_spot_y_coordinate = 2359560
- visual_acuity_measurement_sequence = 2359568
- refractive_parameters_used_on_patient_sequence = 2359570
- measurement_laterality = 2359571
- ophthalmic_patient_clinical_information_left_eye_sequence = 2359572
- ophthalmic_patient_clinical_information_right_eye_sequence = 2359573
- foveal_point_normative_data_flag = 2359575
- foveal_point_probability_value = 2359576
- screening_baseline_measured = 2359584
- screening_baseline_measured_sequence = 2359586
- screening_baseline_type = 2359588
- screening_baseline_value = 2359590
- algorithm_source = 2359810
- data_set_name = 2360070
- data_set_version = 2360071
- data_set_source = 2360072
- data_set_description = 2360073
- visual_field_test_reliability_global_index_sequence = 2360087
- visual_field_global_results_index_sequence = 2360096
- data_observation_sequence = 2360101
- index_normals_flag = 2360120
- index_probability = 2360129
- index_probability_sequence = 2360132
- samples_per_pixel = 2621442
- samples_per_pixel_used = 2621443
- photometric_interpretation = 2621444
- image_dimensions = 2621445
- planar_configuration = 2621446
- number_of_frames = 2621448
- frame_increment_pointer = 2621449
- frame_dimension_pointer = 2621450
- rows = 2621456
- columns = 2621457
- planes = 2621458
- ultrasound_color_data_present = 2621460
- pixel_spacing = 2621488
- zoom_factor = 2621489
- zoom_center = 2621490
- pixel_aspect_ratio = 2621492
- image_format = 2621504
- manipulated_image = 2621520
- corrected_image = 2621521
- compression_recognition_code = 2621535
- compression_code = 2621536
- compression_originator = 2621537
- compression_label = 2621538
- compression_description = 2621539
- compression_sequence = 2621541
- compression_step_pointers = 2621542
- repeat_interval = 2621544
- bits_grouped = 2621545
- perimeter_table = 2621552
- perimeter_value = 2621553
- predictor_rows = 2621568
- predictor_columns = 2621569
- predictor_constants = 2621570
- blocked_pixels = 2621584
- block_rows = 2621585
- block_columns = 2621586
- row_overlap = 2621587
- column_overlap = 2621588
- bits_allocated = 2621696
- bits_stored = 2621697
- high_bit = 2621698
- pixel_representation = 2621699
- smallest_valid_pixel_value = 2621700
- largest_valid_pixel_value = 2621701
- smallest_image_pixel_value = 2621702
- largest_image_pixel_value = 2621703
- smallest_pixel_value_in_series = 2621704
- largest_pixel_value_in_series = 2621705
- smallest_image_pixel_value_in_plane = 2621712
- largest_image_pixel_value_in_plane = 2621713
- pixel_padding_value = 2621728
- pixel_padding_range_limit = 2621729
- float_pixel_padding_value = 2621730
- double_float_pixel_padding_value = 2621731
- float_pixel_padding_range_limit = 2621732
- double_float_pixel_padding_range_limit = 2621733
- image_location = 2621952
- quality_control_image = 2622208
- burned_in_annotation = 2622209
- recognizable_visual_features = 2622210
- longitudinal_temporal_information_modified = 2622211
- referenced_color_palette_instance_uid = 2622212
- transform_label = 2622464
- transform_version_number = 2622465
- number_of_transform_steps = 2622466
- sequence_of_compressed_data = 2622467
- details_of_coefficients = 2622468
- dct_label = 2623232
- data_block_description = 2623233
- data_block = 2623234
- normalization_factor_format = 2623248
- zonal_map_number_format = 2623264
- zonal_map_location = 2623265
- zonal_map_format = 2623266
- adaptive_map_format = 2623280
- code_number_format = 2623296
- pixel_spacing_calibration_type = 2624002
- pixel_spacing_calibration_description = 2624004
- pixel_intensity_relationship = 2625600
- pixel_intensity_relationship_sign = 2625601
- window_center = 2625616
- window_width = 2625617
- rescale_intercept = 2625618
- rescale_slope = 2625619
- rescale_type = 2625620
- window_center___width_explanation = 2625621
- voi_lut_function = 2625622
- gray_scale = 2625664
- recommended_viewing_mode = 2625680
- gray_lookup_table_descriptor = 2625792
- red_palette_color_lookup_table_descriptor = 2625793
- green_palette_color_lookup_table_descriptor = 2625794
- blue_palette_color_lookup_table_descriptor = 2625795
- alpha_palette_color_lookup_table_descriptor = 2625796
- large_red_palette_color_lookup_table_descriptor = 2625809
- large_green_palette_color_lookup_table_descriptor = 2625810
- large_blue_palette_color_lookup_table_descriptor = 2625811
- palette_color_lookup_table_uid = 2625945
- gray_lookup_table_data = 2626048
- red_palette_color_lookup_table_data = 2626049
- green_palette_color_lookup_table_data = 2626050
- blue_palette_color_lookup_table_data = 2626051
- alpha_palette_color_lookup_table_data = 2626052
- large_red_palette_color_lookup_table_data = 2626065
- large_green_palette_color_lookup_table_data = 2626066
- large_blue_palette_color_lookup_table_data = 2626067
- large_palette_color_lookup_table_uid = 2626068
- segmented_red_palette_color_lookup_table_data = 2626081
- segmented_green_palette_color_lookup_table_data = 2626082
- segmented_blue_palette_color_lookup_table_data = 2626083
- segmented_alpha_palette_color_lookup_table_data = 2626084
- breast_implant_present = 2626304
- partial_view = 2626384
- partial_view_description = 2626385
- partial_view_code_sequence = 2626386
- spatial_locations_preserved = 2626394
- data_frame_assignment_sequence = 2626561
- data_path_assignment = 2626562
- bits_mapped_to_color_lookup_table = 2626563
- blending_lut_1_sequence = 2626564
- blending_lut_1_transfer_function = 2626565
- blending_weight_constant = 2626566
- blending_lookup_table_descriptor = 2626567
- blending_lookup_table_data = 2626568
- enhanced_palette_color_lookup_table_sequence = 2626571
- blending_lut_2_sequence = 2626572
- blending_lut_2_transfer_function = 2626573
- data_path_id = 2626574
- rgb_lut_transfer_function = 2626575
- alpha_lut_transfer_function = 2626576
- icc_profile = 2629632
- color_space = 2629634
- lossy_image_compression = 2629904
- lossy_image_compression_ratio = 2629906
- lossy_image_compression_method = 2629908
- modality_lut_sequence = 2633728
- lut_descriptor = 2633730
- lut_explanation = 2633731
- modality_lut_type = 2633732
- lut_data = 2633734
- voi_lut_sequence = 2633744
- softcopy_voi_lut_sequence = 2634000
- image_presentation_comments = 2637824
- bi_plane_acquisition_sequence = 2641920
- representative_frame_number = 2646032
- frame_numbers_of_interest__foi_ = 2646048
- frame_of_interest_description = 2646050
- frame_of_interest_type = 2646051
- mask_pointer_s_ = 2646064
- r_wave_pointer = 2646080
- mask_subtraction_sequence = 2646272
- mask_operation = 2646273
- applicable_frame_range = 2646274
- mask_frame_numbers = 2646288
- contrast_frame_averaging = 2646290
- mask_sub_pixel_shift = 2646292
- tid_offset = 2646304
- mask_operation_explanation = 2646416
- equipment_administrator_sequence = 2650112
- number_of_display_subsystems = 2650113
- current_configuration_id = 2650114
- display_subsystem_id = 2650115
- display_subsystem_name = 2650116
- display_subsystem_description = 2650117
- system_status = 2650118
- system_status_comment = 2650119
- target_luminance_characteristics_sequence = 2650120
- luminance_characteristics_id = 2650121
- display_subsystem_configuration_sequence = 2650122
- configuration_id = 2650123
- configuration_name = 2650124
- configuration_description = 2650125
- referenced_target_luminance_characteristics_id = 2650126
- qa_results_sequence = 2650127
- display_subsystem_qa_results_sequence = 2650128
- configuration_qa_results_sequence = 2650129
- measurement_equipment_sequence = 2650130
- measurement_functions = 2650131
- measurement_equipment_type = 2650132
- visual_evaluation_result_sequence = 2650133
- display_calibration_result_sequence = 2650134
- ddl_value = 2650135
- ciexy_white_point = 2650136
- display_function_type = 2650137
- gamma_value = 2650138
- number_of_luminance_points = 2650139
- luminance_response_sequence = 2650140
- target_minimum_luminance = 2650141
- target_maximum_luminance = 2650142
- luminance_value = 2650143
- luminance_response_description = 2650144
- white_point_flag = 2650145
- display_device_type_code_sequence = 2650146
- display_subsystem_sequence = 2650147
- luminance_result_sequence = 2650148
- ambient_light_value_source = 2650149
- measured_characteristics = 2650150
- luminance_uniformity_result_sequence = 2650151
- visual_evaluation_test_sequence = 2650152
- test_result = 2650153
- test_result_comment = 2650154
- test_image_validation = 2650155
- test_pattern_code_sequence = 2650156
- measurement_pattern_code_sequence = 2650157
- visual_evaluation_method_code_sequence = 2650158
- pixel_data_provider_url = 2654176
- data_point_rows = 2658305
- data_point_columns = 2658306
- signal_domain_columns = 2658307
- largest_monochrome_pixel_value = 2658457
- data_representation = 2658568
- pixel_measures_sequence = 2658576
- frame_voi_lut_sequence = 2658610
- pixel_value_transformation_sequence = 2658629
- signal_domain_rows = 2658869
- display_filter_percentage = 2659345
- frame_pixel_shift_sequence = 2659349
- subtraction_item_id = 2659350
- pixel_intensity_relationship_lut_sequence = 2659362
- frame_pixel_data_properties_sequence = 2659395
- geometrical_properties = 2659396
- geometric_maximum_distortion = 2659397
- image_processing_applied = 2659398
- mask_selection_mode = 2659412
- lut_function = 2659444
- mask_visibility_percentage = 2659448
- pixel_shift_sequence = 2659585
- region_pixel_shift_sequence = 2659586
- vertices_of_the_region = 2659587
- multi_frame_presentation_sequence = 2659589
- pixel_shift_frame_range = 2659590
- lut_frame_range = 2659591
- image_to_equipment_mapping_matrix = 2659616
- equipment_coordinate_system_identification = 2659639
- study_status_id = 3276810
- study_priority_id = 3276812
- study_id_issuer = 3276818
- study_verified_date = 3276850
- study_verified_time = 3276851
- study_read_date = 3276852
- study_read_time = 3276853
- scheduled_study_start_date = 3280896
- scheduled_study_start_time = 3280897
- scheduled_study_stop_date = 3280912
- scheduled_study_stop_time = 3280913
- scheduled_study_location = 3280928
- scheduled_study_location_ae_title = 3280929
- reason_for_study = 3280944
- requesting_physician_identification_sequence = 3280945
- requesting_physician = 3280946
- requesting_service = 3280947
- requesting_service_code_sequence = 3280948
- study_arrival_date = 3280960
- study_arrival_time = 3280961
- study_completion_date = 3280976
- study_completion_time = 3280977
- study_component_status_id = 3280981
- requested_procedure_description = 3280992
- requested_procedure_code_sequence = 3280996
- requested_contrast_agent = 3281008
- study_comments = 3293184
- referenced_patient_alias_sequence = 3670020
- visit_status_id = 3670024
- admission_id = 3670032
- issuer_of_admission_id = 3670033
- issuer_of_admission_id_sequence = 3670036
- route_of_admissions = 3670038
- scheduled_admission_date = 3670042
- scheduled_admission_time = 3670043
- scheduled_discharge_date = 3670044
- scheduled_discharge_time = 3670045
- scheduled_patient_institution_residence = 3670046
- admitting_date = 3670048
- admitting_time = 3670049
- discharge_date = 3670064
- discharge_time = 3670066
- discharge_diagnosis_description = 3670080
- discharge_diagnosis_code_sequence = 3670084
- special_needs = 3670096
- service_episode_id = 3670112
- issuer_of_service_episode_id = 3670113
- service_episode_description = 3670114
- issuer_of_service_episode_id_sequence = 3670116
- pertinent_documents_sequence = 3670272
- pertinent_resources_sequence = 3670273
- resource_description = 3670274
- current_patient_location = 3670784
- patient_s_institution_residence = 3671040
- patient_state = 3671296
- patient_clinical_trial_participation_sequence = 3671298
- visit_comments = 3686400
- waveform_originality = 3801092
- number_of_waveform_channels = 3801093
- number_of_waveform_samples = 3801104
- sampling_frequency = 3801114
- multiplex_group_label = 3801120
- channel_definition_sequence = 3801600
- waveform_channel_number = 3801602
- channel_label = 3801603
- channel_status = 3801605
- channel_source_sequence = 3801608
- channel_source_modifiers_sequence = 3801609
- source_waveform_sequence = 3801610
- channel_derivation_description = 3801612
- channel_sensitivity = 3801616
- channel_sensitivity_units_sequence = 3801617
- channel_sensitivity_correction_factor = 3801618
- channel_baseline = 3801619
- channel_time_skew = 3801620
- channel_sample_skew = 3801621
- channel_offset = 3801624
- waveform_bits_stored = 3801626
- filter_low_frequency = 3801632
- filter_high_frequency = 3801633
- notch_filter_frequency = 3801634
- notch_filter_bandwidth = 3801635
- waveform_data_display_scale = 3801648
- waveform_display_background_cielab_value = 3801649
- waveform_presentation_group_sequence = 3801664
- presentation_group_number = 3801665
- channel_display_sequence = 3801666
- channel_recommended_display_cielab_value = 3801668
- channel_position = 3801669
- display_shading_flag = 3801670
- fractional_channel_display_scale = 3801671
- absolute_channel_display_scale = 3801672
- multiplexed_audio_channels_description_code_sequence = 3801856
- channel_identification_code = 3801857
- channel_mode = 3801858
- scheduled_station_ae_title = 4194305
- scheduled_procedure_step_start_date = 4194306
- scheduled_procedure_step_start_time = 4194307
- scheduled_procedure_step_end_date = 4194308
- scheduled_procedure_step_end_time = 4194309
- scheduled_performing_physician_s_name = 4194310
- scheduled_procedure_step_description = 4194311
- scheduled_protocol_code_sequence = 4194312
- scheduled_procedure_step_id = 4194313
- stage_code_sequence = 4194314
- scheduled_performing_physician_identification_sequence = 4194315
- scheduled_station_name = 4194320
- scheduled_procedure_step_location = 4194321
- pre_medication = 4194322
- scheduled_procedure_step_status = 4194336
- order_placer_identifier_sequence = 4194342
- order_filler_identifier_sequence = 4194343
- local_namespace_entity_id = 4194353
- universal_entity_id = 4194354
- universal_entity_id_type = 4194355
- identifier_type_code = 4194357
- assigning_facility_sequence = 4194358
- assigning_jurisdiction_code_sequence = 4194361
- assigning_agency_or_department_code_sequence = 4194362
- scheduled_procedure_step_sequence = 4194560
- referenced_non_image_composite_sop_instance_sequence = 4194848
- performed_station_ae_title = 4194881
- performed_station_name = 4194882
- performed_location = 4194883
- performed_procedure_step_start_date = 4194884
- performed_procedure_step_start_time = 4194885
- performed_procedure_step_end_date = 4194896
- performed_procedure_step_end_time = 4194897
- performed_procedure_step_status = 4194898
- performed_procedure_step_id = 4194899
- performed_procedure_step_description = 4194900
- performed_procedure_type_description = 4194901
- performed_protocol_code_sequence = 4194912
- performed_protocol_type = 4194913
- scheduled_step_attributes_sequence = 4194928
- request_attributes_sequence = 4194933
- comments_on_the_performed_procedure_step = 4194944
- performed_procedure_step_discontinuation_reason_code_sequence = 4194945
- quantity_sequence = 4194963
- quantity = 4194964
- measuring_units_sequence = 4194965
- billing_item_sequence = 4194966
- total_time_of_fluoroscopy = 4195072
- total_number_of_exposures = 4195073
- entrance_dose = 4195074
- exposed_area = 4195075
- distance_source_to_entrance = 4195078
- distance_source_to_support = 4195079
- exposure_dose_sequence = 4195086
- comments_on_radiation_dose = 4195088
- x_ray_output = 4195090
- half_value_layer = 4195092
- organ_dose = 4195094
- organ_exposed = 4195096
- billing_procedure_step_sequence = 4195104
- film_consumption_sequence = 4195105
- billing_supplies_and_devices_sequence = 4195108
- referenced_procedure_step_sequence = 4195120
- performed_series_sequence = 4195136
- comments_on_the_scheduled_procedure_step = 4195328
- protocol_context_sequence = 4195392
- content_item_modifier_sequence = 4195393
- scheduled_specimen_sequence = 4195584
- specimen_accession_number = 4195594
- container_identifier = 4195602
- issuer_of_the_container_identifier_sequence = 4195603
- alternate_container_identifier_sequence = 4195605
- container_type_code_sequence = 4195608
- container_description = 4195610
- container_component_sequence = 4195616
- specimen_sequence = 4195664
- specimen_identifier = 4195665
- specimen_description_sequence__trial_ = 4195666
- specimen_description__trial_ = 4195667
- specimen_uid = 4195668
- acquisition_context_sequence = 4195669
- acquisition_context_description = 4195670
- specimen_description_sequence = 4195680
- issuer_of_the_specimen_identifier_sequence = 4195682
- specimen_type_code_sequence = 4195738
- specimen_short_description = 4195840
- specimen_detailed_description = 4195842
- specimen_preparation_sequence = 4195856
- specimen_preparation_step_content_item_sequence = 4195858
- specimen_localization_content_item_sequence = 4195872
- slide_identifier = 4196090
- image_center_point_coordinates_sequence = 4196122
- x_offset_in_slide_coordinate_system = 4196138
- y_offset_in_slide_coordinate_system = 4196154
- z_offset_in_slide_coordinate_system = 4196170
- pixel_spacing_sequence = 4196568
- coordinate_system_axis_code_sequence = 4196570
- measurement_units_code_sequence = 4196586
- vital_stain_code_sequence__trial_ = 4196856
- requested_procedure_id = 4198401
- reason_for_the_requested_procedure = 4198402
- requested_procedure_priority = 4198403
- patient_transport_arrangements = 4198404
- requested_procedure_location = 4198405
- placer_order_number___procedure = 4198406
- filler_order_number___procedure = 4198407
- confidentiality_code = 4198408
- reporting_priority = 4198409
- reason_for_requested_procedure_code_sequence = 4198410
- names_of_intended_recipients_of_results = 4198416
- intended_recipients_of_results_identification_sequence = 4198417
- reason_for_performed_procedure_code_sequence = 4198418
- requested_procedure_description__trial_ = 4198496
- person_identification_code_sequence = 4198657
- person_s_address = 4198658
- person_s_telephone_numbers = 4198659
- person_s_telecom_information = 4198660
- requested_procedure_comments = 4199424
- reason_for_the_imaging_service_request = 4202497
- issue_date_of_imaging_service_request = 4202500
- issue_time_of_imaging_service_request = 4202501
- placer_order_number___imaging_service_request__retired_ = 4202502
- filler_order_number___imaging_service_request__retired_ = 4202503
- order_entered_by = 4202504
- order_enterer_s_location = 4202505
- order_callback_phone_number = 4202512
- order_callback_telecom_information = 4202513
- placer_order_number___imaging_service_request = 4202518
- filler_order_number___imaging_service_request = 4202519
- imaging_service_request_comments = 4203520
- confidentiality_constraint_on_patient_data_description = 4206593
- general_purpose_scheduled_procedure_step_status = 4210689
- general_purpose_performed_procedure_step_status = 4210690
- general_purpose_scheduled_procedure_step_priority = 4210691
- scheduled_processing_applications_code_sequence = 4210692
- scheduled_procedure_step_start_datetime = 4210693
- multiple_copies_flag = 4210694
- performed_processing_applications_code_sequence = 4210695
- human_performer_code_sequence = 4210697
- scheduled_procedure_step_modification_datetime = 4210704
- expected_completion_datetime = 4210705
- resulting_general_purpose_performed_procedure_steps_sequence = 4210709
- referenced_general_purpose_scheduled_procedure_step_sequence = 4210710
- scheduled_workitem_code_sequence = 4210712
- performed_workitem_code_sequence = 4210713
- input_availability_flag = 4210720
- input_information_sequence = 4210721
- relevant_information_sequence = 4210722
- referenced_general_purpose_scheduled_procedure_step_transaction_uid = 4210723
- scheduled_station_name_code_sequence = 4210725
- scheduled_station_class_code_sequence = 4210726
- scheduled_station_geographic_location_code_sequence = 4210727
- performed_station_name_code_sequence = 4210728
- performed_station_class_code_sequence = 4210729
- performed_station_geographic_location_code_sequence = 4210736
- requested_subsequent_workitem_code_sequence = 4210737
- non_dicom_output_code_sequence = 4210738
- output_information_sequence = 4210739
- scheduled_human_performers_sequence = 4210740
- actual_human_performers_sequence = 4210741
- human_performer_s_organization = 4210742
- human_performer_s_name = 4210743
- raw_data_handling = 4210752
- input_readiness_state = 4210753
- performed_procedure_step_start_datetime = 4210768
- performed_procedure_step_end_datetime = 4210769
- procedure_step_cancellation_datetime = 4210770
- output_destination_sequence = 4210800
- dicom_storage_sequence = 4210801
- stow_rs_storage_sequence = 4210802
- storage_url = 4210803
- xds_storage_sequence = 4210804
- entrance_dose_in_mgy = 4227842
- parametric_map_frame_type_sequence = 4231314
- referenced_image_real_world_value_mapping_sequence = 4231316
- real_world_value_mapping_sequence = 4231318
- pixel_value_mapping_code_sequence = 4231320
- lut_label = 4231696
- real_world_value_last_value_mapped = 4231697
- real_world_value_lut_data = 4231698
- double_float_real_world_value_last_value_mapped = 4231699
- double_float_real_world_value_first_value_mapped = 4231700
- real_world_value_first_value_mapped = 4231702
- quantity_definition_sequence = 4231712
- real_world_value_intercept = 4231716
- real_world_value_slope = 4231717
- findings_flag__trial_ = 4235271
- relationship_type = 4235280
- findings_sequence__trial_ = 4235296
- findings_group_uid__trial_ = 4235297
- referenced_findings_group_uid__trial_ = 4235298
- findings_group_recording_date__trial_ = 4235299
- findings_group_recording_time__trial_ = 4235300
- findings_source_category_code_sequence__trial_ = 4235302
- verifying_organization = 4235303
- documenting_organization_identifier_code_sequence__trial_ = 4235304
- verification_datetime = 4235312
- observation_datetime = 4235314
- value_type = 4235328
- concept_name_code_sequence = 4235331
- measurement_precision_description__trial_ = 4235335
- continuity_of_content = 4235344
- urgency_or_priority_alerts__trial_ = 4235351
- sequencing_indicator__trial_ = 4235360
- document_identifier_code_sequence__trial_ = 4235366
- document_author__trial_ = 4235367
- document_author_identifier_code_sequence__trial_ = 4235368
- identifier_code_sequence__trial_ = 4235376
- verifying_observer_sequence = 4235379
- object_binary_identifier__trial_ = 4235380
- verifying_observer_name = 4235381
- documenting_observer_identifier_code_sequence__trial_ = 4235382
- author_observer_sequence = 4235384
- participant_sequence = 4235386
- custodial_organization_sequence = 4235388
- participation_type = 4235392
- participation_datetime = 4235394
- observer_type = 4235396
- procedure_identifier_code_sequence__trial_ = 4235397
- verifying_observer_identification_code_sequence = 4235400
- object_directory_binary_identifier__trial_ = 4235401
- equivalent_cda_document_sequence = 4235408
- referenced_waveform_channels = 4235440
- date_of_document_or_verbal_transaction__trial_ = 4235536
- time_of_document_creation_or_verbal_transaction__trial_ = 4235538
- datetime = 4235552
- date = 4235553
- time = 4235554
- person_name = 4235555
- uid = 4235556
- report_status_id__trial_ = 4235557
- temporal_range_type = 4235568
- referenced_sample_positions = 4235570
- referenced_frame_numbers = 4235574
- referenced_time_offsets = 4235576
- referenced_datetime = 4235578
- text_value = 4235616
- floating_point_value = 4235617
- rational_numerator_value = 4235618
- rational_denominator_value = 4235619
- observation_category_code_sequence__trial_ = 4235623
- concept_code_sequence = 4235624
- bibliographic_citation__trial_ = 4235626
- purpose_of_reference_code_sequence = 4235632
- observation_uid = 4235633
- referenced_observation_uid__trial_ = 4235634
- referenced_observation_class__trial_ = 4235635
- referenced_object_observation_class__trial_ = 4235636
- annotation_group_number = 4235648
- observation_date__trial_ = 4235666
- observation_time__trial_ = 4235667
- measurement_automation__trial_ = 4235668
- modifier_code_sequence = 4235669
- identification_description__trial_ = 4235812
- coordinates_set_geometric_type__trial_ = 4235920
- algorithm_code_sequence__trial_ = 4235926
- algorithm_description__trial_ = 4235927
- pixel_coordinates_set__trial_ = 4235930
- measured_value_sequence = 4236032
- numeric_value_qualifier_code_sequence = 4236033
- current_observer__trial_ = 4236039
- numeric_value = 4236042
- referenced_accession_sequence__trial_ = 4236051
- report_status_comment__trial_ = 4236090
- procedure_context_sequence__trial_ = 4236096
- verbal_source__trial_ = 4236114
- address__trial_ = 4236115
- telephone_number__trial_ = 4236116
- verbal_source_identifier_code_sequence__trial_ = 4236120
- predecessor_documents_sequence = 4236128
- referenced_request_sequence = 4236144
- performed_procedure_code_sequence = 4236146
- current_requested_procedure_evidence_sequence = 4236149
- report_detail_sequence__trial_ = 4236160
- pertinent_other_evidence_sequence = 4236165
- hl7_structured_document_reference_sequence = 4236176
- observation_subject_uid__trial_ = 4236290
- observation_subject_class__trial_ = 4236291
- observation_subject_type_code_sequence__trial_ = 4236292
- completion_flag = 4236433
- completion_flag_description = 4236434
- verification_flag = 4236435
- archive_requested = 4236436
- preliminary_flag = 4236438
- content_template_sequence = 4236548
- identical_documents_sequence = 4236581
- observation_subject_context_flag__trial_ = 4236800
- observer_context_flag__trial_ = 4236801
- procedure_context_flag__trial_ = 4236803
- content_sequence = 4237104
- relationship_sequence__trial_ = 4237105
- relationship_type_code_sequence__trial_ = 4237106
- language_code_sequence__trial_ = 4237124
- uniform_resource_locator__trial_ = 4237714
- waveform_annotation_sequence = 4239392
- template_identifier = 4250368
- template_version = 4250374
- template_local_version = 4250375
- template_extension_flag = 4250379
- template_extension_organization_uid = 4250380
- template_extension_creator_uid = 4250381
- referenced_content_item_identifier = 4250483
- hl7_instance_identifier = 4251649
- hl7_document_effective_time = 4251652
- hl7_document_type_code_sequence = 4251654
- document_class_code_sequence = 4251656
- retrieve_uri = 4251664
- retrieve_location_uid = 4251665
- type_of_instances = 4251680
- dicom_retrieval_sequence = 4251681
- dicom_media_retrieval_sequence = 4251682
- wado_retrieval_sequence = 4251683
- xds_retrieval_sequence = 4251684
- wado_rs_retrieval_sequence = 4251685
- repository_unique_id = 4251696
- home_community_id = 4251697
- document_title = 4325392
- encapsulated_document = 4325393
- mime_type_of_encapsulated_document = 4325394
- source_instance_sequence = 4325395
- list_of_mime_types = 4325396
- product_package_identifier = 4456449
- substance_administration_approval = 4456450
- approval_status_further_description = 4456451
- approval_status_datetime = 4456452
- product_type_code_sequence = 4456455
- product_name = 4456456
- product_description = 4456457
- product_lot_identifier = 4456458
- product_expiration_datetime = 4456459
- substance_administration_datetime = 4456464
- substance_administration_notes = 4456465
- substance_administration_device_id = 4456466
- product_parameter_sequence = 4456467
- substance_administration_parameter_sequence = 4456473
- lens_description = 4587538
- right_lens_sequence = 4587540
- left_lens_sequence = 4587541
- unspecified_laterality_lens_sequence = 4587542
- cylinder_sequence = 4587544
- prism_sequence = 4587560
- horizontal_prism_power = 4587568
- horizontal_prism_base = 4587570
- vertical_prism_power = 4587572
- vertical_prism_base = 4587574
- lens_segment_type = 4587576
- optical_transmittance = 4587584
- channel_width = 4587586
- pupil_size = 4587588
- corneal_size = 4587590
- autorefraction_right_eye_sequence = 4587600
- autorefraction_left_eye_sequence = 4587602
- distance_pupillary_distance = 4587616
- near_pupillary_distance = 4587618
- intermediate_pupillary_distance = 4587619
- other_pupillary_distance = 4587620
- keratometry_right_eye_sequence = 4587632
- keratometry_left_eye_sequence = 4587633
- steep_keratometric_axis_sequence = 4587636
- radius_of_curvature = 4587637
- keratometric_power = 4587638
- keratometric_axis = 4587639
- flat_keratometric_axis_sequence = 4587648
- background_color = 4587666
- optotype = 4587668
- optotype_presentation = 4587669
- subjective_refraction_right_eye_sequence = 4587671
- subjective_refraction_left_eye_sequence = 4587672
- add_near_sequence = 4587776
- add_intermediate_sequence = 4587777
- add_other_sequence = 4587778
- add_power = 4587780
- viewing_distance = 4587782
- visual_acuity_type_code_sequence = 4587809
- visual_acuity_right_eye_sequence = 4587810
- visual_acuity_left_eye_sequence = 4587811
- visual_acuity_both_eyes_open_sequence = 4587812
- viewing_distance_type = 4587813
- visual_acuity_modifiers = 4587829
- decimal_visual_acuity = 4587831
- optotype_detailed_definition = 4587833
- referenced_refractive_measurements_sequence = 4587845
- sphere_power = 4587846
- cylinder_power = 4587847
- corneal_topography_surface = 4588033
- corneal_vertex_location = 4588034
- pupil_centroid_x_coordinate = 4588035
- pupil_centroid_y_coordinate = 4588036
- equivalent_pupil_radius = 4588037
- corneal_topography_map_type_code_sequence = 4588039
- vertices_of_the_outline_of_pupil = 4588040
- corneal_topography_mapping_normals_sequence = 4588048
- maximum_corneal_curvature_sequence = 4588049
- maximum_corneal_curvature = 4588050
- maximum_corneal_curvature_location = 4588051
- minimum_keratometric_sequence = 4588053
- simulated_keratometric_cylinder_sequence = 4588056
- average_corneal_power = 4588064
- corneal_i_s_value = 4588068
- analyzed_area = 4588071
- surface_regularity_index = 4588080
- surface_asymmetry_index = 4588082
- corneal_eccentricity_index = 4588084
- keratoconus_prediction_index = 4588086
- decimal_potential_visual_acuity = 4588088
- corneal_topography_map_quality_evaluation = 4588098
- source_image_corneal_processed_data_sequence = 4588100
- corneal_point_location = 4588103
- corneal_point_estimated = 4588104
- axial_power = 4588105
- tangential_power = 4588112
- refractive_power = 4588113
- relative_elevation = 4588114
- corneal_wavefront = 4588115
- imaged_volume_width = 4718593
- imaged_volume_height = 4718594
- imaged_volume_depth = 4718595
- total_pixel_matrix_columns = 4718598
- total_pixel_matrix_rows = 4718599
- total_pixel_matrix_origin_sequence = 4718600
- specimen_label_in_image = 4718608
- focus_method = 4718609
- extended_depth_of_field = 4718610
- number_of_focal_planes = 4718611
- distance_between_focal_planes = 4718612
- recommended_absent_pixel_cielab_value = 4718613
- illuminator_type_code_sequence = 4718848
- image_orientation__slide_ = 4718850
- optical_path_sequence = 4718853
- optical_path_identifier = 4718854
- optical_path_description = 4718855
- illumination_color_code_sequence = 4718856
- specimen_reference_sequence = 4718864
- condenser_lens_power = 4718865
- objective_lens_power = 4718866
- objective_lens_numerical_aperture = 4718867
- palette_color_lookup_table_sequence = 4718880
- referenced_image_navigation_sequence = 4719104
- top_left_hand_corner_of_localizer_area = 4719105
- bottom_right_hand_corner_of_localizer_area = 4719106
- optical_path_identification_sequence = 4719111
- plane_position__slide__sequence = 4719130
- column_position_in_total_image_pixel_matrix = 4719134
- row_position_in_total_image_pixel_matrix = 4719135
- pixel_origin_interpretation = 4719361
- calibration_image = 5242884
- device_sequence = 5242896
- container_component_type_code_sequence = 5242898
- container_component_thickness = 5242899
- device_length = 5242900
- container_component_width = 5242901
- device_diameter = 5242902
- device_diameter_units = 5242903
- device_volume = 5242904
- inter_marker_distance = 5242905
- container_component_material = 5242906
- container_component_id = 5242907
- container_component_length = 5242908
- container_component_diameter = 5242909
- container_component_description = 5242910
- device_description = 5242912
- contrast_bolus_ingredient_percent_by_volume = 5373953
- oct_focal_distance = 5373954
- beam_spot_size = 5373955
- effective_refractive_index = 5373956
- oct_acquisition_domain = 5373958
- oct_optical_center_wavelength = 5373959
- axial_resolution = 5373960
- ranging_depth = 5373961
- a_line_rate = 5373969
- a_lines_per_frame = 5373970
- catheter_rotational_rate = 5373971
- a_line_pixel_spacing = 5373972
- mode_of_percutaneous_access_sequence = 5373974
- intravascular_oct_frame_type_sequence = 5373989
- oct_z_offset_applied = 5373990
- intravascular_frame_content_sequence = 5373991
- intravascular_longitudinal_distance = 5373992
- intravascular_oct_frame_content_sequence = 5373993
- oct_z_offset_correction = 5374000
- catheter_direction_of_rotation = 5374001
- seam_line_location = 5374003
- first_a_line_location = 5374004
- seam_line_index = 5374006
- number_of_padded_a_lines = 5374008
- interpolation_type = 5374009
- refractive_index_applied = 5374010
- energy_window_vector = 5505040
- number_of_energy_windows = 5505041
- energy_window_information_sequence = 5505042
- energy_window_range_sequence = 5505043
- energy_window_lower_limit = 5505044
- energy_window_upper_limit = 5505045
- radiopharmaceutical_information_sequence = 5505046
- residual_syringe_counts = 5505047
- energy_window_name = 5505048
- detector_vector = 5505056
- number_of_detectors = 5505057
- detector_information_sequence = 5505058
- phase_vector = 5505072
- number_of_phases = 5505073
- phase_information_sequence = 5505074
- number_of_frames_in_phase = 5505075
- phase_delay = 5505078
- pause_between_frames = 5505080
- phase_description = 5505081
- rotation_vector = 5505104
- number_of_rotations = 5505105
- rotation_information_sequence = 5505106
- number_of_frames_in_rotation = 5505107
- r_r_interval_vector = 5505120
- number_of_r_r_intervals = 5505121
- gated_information_sequence = 5505122
- data_information_sequence = 5505123
- time_slot_vector = 5505136
- number_of_time_slots = 5505137
- time_slot_information_sequence = 5505138
- time_slot_time = 5505139
- slice_vector = 5505152
- number_of_slices = 5505153
- angular_view_vector = 5505168
- time_slice_vector = 5505280
- number_of_time_slices = 5505281
- start_angle = 5505536
- type_of_detector_motion = 5505538
- trigger_vector = 5505552
- number_of_triggers_in_phase = 5505553
- view_code_sequence = 5505568
- view_modifier_code_sequence = 5505570
- radionuclide_code_sequence = 5505792
- administration_route_code_sequence = 5505794
- radiopharmaceutical_code_sequence = 5505796
- calibration_data_sequence = 5505798
- energy_window_number = 5505800
- image_id = 5506048
- patient_orientation_code_sequence = 5506064
- patient_orientation_modifier_code_sequence = 5506066
- patient_gantry_relationship_code_sequence = 5506068
- slice_progression_direction = 5506304
- scan_progression_direction = 5506305
- series_type = 5509120
- units = 5509121
- counts_source = 5509122
- reprojection_method = 5509124
- suv_type = 5509126
- randoms_correction_method = 5509376
- attenuation_correction_method = 5509377
- decay_correction = 5509378
- reconstruction_method = 5509379
- detector_lines_of_response_used = 5509380
- scatter_correction_method = 5509381
- axial_acceptance = 5509632
- axial_mash = 5509633
- transverse_mash = 5509634
- detector_element_size = 5509635
- coincidence_window_width = 5509648
- secondary_counts_type = 5509664
- frame_reference_time = 5509888
- primary__prompts__counts_accumulated = 5509904
- secondary_counts_accumulated = 5509905
- slice_sensitivity_factor = 5509920
- decay_factor = 5509921
- dose_calibration_factor = 5509922
- scatter_fraction_factor = 5509923
- dead_time_factor = 5509924
- image_index = 5509936
- counts_included = 5510144
- dead_time_correction_flag = 5510145
- histogram_sequence = 6303744
- histogram_number_of_bins = 6303746
- histogram_first_bin_value = 6303748
- histogram_last_bin_value = 6303750
- histogram_bin_width = 6303752
- histogram_explanation = 6303760
- histogram_data = 6303776
- segmentation_type = 6422529
- segment_sequence = 6422530
- segmented_property_category_code_sequence = 6422531
- segment_number = 6422532
- segment_label = 6422533
- segment_description = 6422534
- segment_algorithm_type = 6422536
- segment_algorithm_name = 6422537
- segment_identification_sequence = 6422538
- referenced_segment_number = 6422539
- recommended_display_grayscale_value = 6422540
- recommended_display_cielab_value = 6422541
- maximum_fractional_value = 6422542
- segmented_property_type_code_sequence = 6422543
- segmentation_fractional_type = 6422544
- segmented_property_type_modifier_code_sequence = 6422545
- used_segments_sequence = 6422546
- tracking_id = 6422560
- tracking_uid = 6422561
- deformable_registration_sequence = 6553602
- source_frame_of_reference_uid = 6553603
- deformable_registration_grid_sequence = 6553605
- grid_dimensions = 6553607
- grid_resolution = 6553608
- vector_grid_data = 6553609
- pre_deformation_matrix_registration_sequence = 6553615
- post_deformation_matrix_registration_sequence = 6553616
- number_of_surfaces = 6684673
- surface_sequence = 6684674
- surface_number = 6684675
- surface_comments = 6684676
- surface_processing = 6684681
- surface_processing_ratio = 6684682
- surface_processing_description = 6684683
- recommended_presentation_opacity = 6684684
- recommended_presentation_type = 6684685
- finite_volume = 6684686
- manifold = 6684688
- surface_points_sequence = 6684689
- surface_points_normals_sequence = 6684690
- surface_mesh_primitives_sequence = 6684691
- number_of_surface_points = 6684693
- point_coordinates_data = 6684694
- point_position_accuracy = 6684695
- mean_point_distance = 6684696
- maximum_point_distance = 6684697
- points_bounding_box_coordinates = 6684698
- axis_of_rotation = 6684699
- center_of_rotation = 6684700
- number_of_vectors = 6684702
- vector_dimensionality = 6684703
- vector_accuracy = 6684704
- vector_coordinate_data = 6684705
- triangle_point_index_list = 6684707
- edge_point_index_list = 6684708
- vertex_point_index_list = 6684709
- triangle_strip_sequence = 6684710
- triangle_fan_sequence = 6684711
- line_sequence = 6684712
- primitive_point_index_list = 6684713
- surface_count = 6684714
- referenced_surface_sequence = 6684715
- referenced_surface_number = 6684716
- segment_surface_generation_algorithm_identification_sequence = 6684717
- segment_surface_source_instance_sequence = 6684718
- algorithm_family_code_sequence = 6684719
- algorithm_name_code_sequence = 6684720
- algorithm_version = 6684721
- algorithm_parameters = 6684722
- facet_sequence = 6684724
- surface_processing_algorithm_identification_sequence = 6684725
- algorithm_name = 6684726
- recommended_point_radius = 6684727
- recommended_line_thickness = 6684728
- long_primitive_point_index_list = 6684736
- long_triangle_point_index_list = 6684737
- long_edge_point_index_list = 6684738
- long_vertex_point_index_list = 6684739
- track_set_sequence = 6684929
- track_sequence = 6684930
- recommended_display_cielab_value_list = 6684931
- tracking_algorithm_identification_sequence = 6684932
- track_set_number = 6684933
- track_set_label = 6684934
- track_set_description = 6684935
- track_set_anatomical_type_code_sequence = 6684936
- measurements_sequence = 6684961
- track_set_statistics_sequence = 6684964
- floating_point_values = 6684965
- track_point_index_list = 6684969
- track_statistics_sequence = 6684976
- measurement_values_sequence = 6684978
- diffusion_acquisition_code_sequence = 6684979
- diffusion_model_code_sequence = 6684980
- implant_size = 6840848
- implant_template_version = 6840865
- replaced_implant_template_sequence = 6840866
- implant_type = 6840867
- derivation_implant_template_sequence = 6840868
- original_implant_template_sequence = 6840869
- effective_datetime = 6840870
- implant_target_anatomy_sequence = 6840880
- information_from_manufacturer_sequence = 6840928
- notification_from_manufacturer_sequence = 6840933
- information_issue_datetime = 6840944
- information_summary = 6840960
- implant_regulatory_disapproval_code_sequence = 6840992
- overall_template_spatial_tolerance = 6840997
- hpgl_document_sequence = 6841024
- hpgl_document_id = 6841040
- hpgl_document_label = 6841045
- view_orientation_code_sequence = 6841056
- view_orientation_modifier = 6841072
- hpgl_document_scaling = 6841074
- hpgl_document = 6841088
- hpgl_contour_pen_number = 6841104
- hpgl_pen_sequence = 6841120
- hpgl_pen_number = 6841136
- hpgl_pen_label = 6841152
- hpgl_pen_description = 6841157
- recommended_rotation_point = 6841158
- bounding_rectangle = 6841159
- implant_template_3d_model_surface_number = 6841168
- surface_model_description_sequence = 6841184
- surface_model_label = 6841216
- surface_model_scaling_factor = 6841232
- materials_code_sequence = 6841248
- coating_materials_code_sequence = 6841252
- implant_type_code_sequence = 6841256
- fixation_method_code_sequence = 6841260
- mating_feature_sets_sequence = 6841264
- mating_feature_set_id = 6841280
- mating_feature_set_label = 6841296
- mating_feature_sequence = 6841312
- mating_feature_id = 6841328
- mating_feature_degree_of_freedom_sequence = 6841344
- degree_of_freedom_id = 6841360
- degree_of_freedom_type = 6841376
- tag_2d_mating_feature_coordinates_sequence = 6841392
- referenced_hpgl_document_id = 6841408
- tag_2d_mating_point = 6841424
- tag_2d_mating_axes = 6841440
- tag_2d_degree_of_freedom_sequence = 6841456
- tag_3d_degree_of_freedom_axis = 6841488
- range_of_freedom = 6841504
- tag_3d_mating_point = 6841536
- tag_3d_mating_axes = 6841552
- tag_2d_degree_of_freedom_axis = 6841584
- planning_landmark_point_sequence = 6841600
- planning_landmark_line_sequence = 6841616
- planning_landmark_plane_sequence = 6841632
- planning_landmark_id = 6841648
- planning_landmark_description = 6841664
- planning_landmark_identification_code_sequence = 6841669
- tag_2d_point_coordinates_sequence = 6841680
- tag_2d_point_coordinates = 6841696
- tag_3d_point_coordinates = 6841744
- tag_2d_line_coordinates_sequence = 6841760
- tag_2d_line_coordinates = 6841776
- tag_3d_line_coordinates = 6841808
- tag_2d_plane_coordinates_sequence = 6841824
- tag_2d_plane_intersection = 6841840
- tag_3d_plane_origin = 6841872
- tag_3d_plane_normal = 6841888
- graphic_annotation_sequence = 7340033
- graphic_layer = 7340034
- bounding_box_annotation_units = 7340035
- anchor_point_annotation_units = 7340036
- graphic_annotation_units = 7340037
- unformatted_text_value = 7340038
- text_object_sequence = 7340040
- graphic_object_sequence = 7340041
- bounding_box_top_left_hand_corner = 7340048
- bounding_box_bottom_right_hand_corner = 7340049
- bounding_box_text_horizontal_justification = 7340050
- anchor_point = 7340052
- anchor_point_visibility = 7340053
- graphic_dimensions = 7340064
- number_of_graphic_points = 7340065
- graphic_data = 7340066
- graphic_type = 7340067
- graphic_filled = 7340068
- image_rotation__retired_ = 7340096
- image_horizontal_flip = 7340097
- image_rotation = 7340098
- displayed_area_top_left_hand_corner__trial_ = 7340112
- displayed_area_bottom_right_hand_corner__trial_ = 7340113
- displayed_area_top_left_hand_corner = 7340114
- displayed_area_bottom_right_hand_corner = 7340115
- displayed_area_selection_sequence = 7340122
- graphic_layer_sequence = 7340128
- graphic_layer_order = 7340130
- graphic_layer_recommended_display_grayscale_value = 7340134
- graphic_layer_recommended_display_rgb_value = 7340135
- graphic_layer_description = 7340136
- content_label = 7340160
- content_description = 7340161
- presentation_creation_date = 7340162
- presentation_creation_time = 7340163
- content_creator_s_name = 7340164
- content_creator_s_identification_code_sequence = 7340166
- alternate_content_description_sequence = 7340167
- presentation_size_mode = 7340288
- presentation_pixel_spacing = 7340289
- presentation_pixel_aspect_ratio = 7340290
- presentation_pixel_magnification_ratio = 7340291
- graphic_group_label = 7340551
- graphic_group_description = 7340552
- compound_graphic_sequence = 7340553
- compound_graphic_instance_id = 7340582
- font_name = 7340583
- font_name_type = 7340584
- css_font_name = 7340585
- rotation_angle = 7340592
- text_style_sequence = 7340593
- line_style_sequence = 7340594
- fill_style_sequence = 7340595
- graphic_group_sequence = 7340596
- text_color_cielab_value = 7340609
- horizontal_alignment = 7340610
- vertical_alignment = 7340611
- shadow_style = 7340612
- shadow_offset_x = 7340613
- shadow_offset_y = 7340614
- shadow_color_cielab_value = 7340615
- underlined = 7340616
- bold = 7340617
- italic = 7340624
- pattern_on_color_cielab_value = 7340625
- pattern_off_color_cielab_value = 7340626
- line_thickness = 7340627
- line_dashing_style = 7340628
- line_pattern = 7340629
- fill_pattern = 7340630
- fill_mode = 7340631
- shadow_opacity = 7340632
- gap_length = 7340641
- diameter_of_visibility = 7340642
- rotation_point = 7340659
- tick_alignment = 7340660
- show_tick_label = 7340664
- tick_label_alignment = 7340665
- compound_graphic_units = 7340674
- pattern_on_opacity = 7340676
- pattern_off_opacity = 7340677
- major_ticks_sequence = 7340679
- tick_position = 7340680
- tick_label = 7340681
- compound_graphic_type = 7340692
- graphic_group_id = 7340693
- shape_type = 7340806
- registration_sequence = 7340808
- matrix_registration_sequence = 7340809
- matrix_sequence = 7340810
- frame_of_reference_to_displayed_coordinate_system_transformation_matrix = 7340811
- frame_of_reference_transformation_matrix_type = 7340812
- registration_type_code_sequence = 7340813
- fiducial_description = 7340815
- fiducial_identifier = 7340816
- fiducial_identifier_code_sequence = 7340817
- contour_uncertainty_radius = 7340818
- used_fiducials_sequence = 7340820
- graphic_coordinates_data_sequence = 7340824
- fiducial_uid = 7340826
- fiducial_set_sequence = 7340828
- fiducial_sequence = 7340830
- graphic_layer_recommended_display_cielab_value = 7341057
- blending_sequence = 7341058
- relative_opacity = 7341059
- referenced_spatial_registration_sequence = 7341060
- blending_position = 7341061
- presentation_display_collection_uid = 7344385
- presentation_sequence_collection_uid = 7344386
- presentation_sequence_position_index = 7344387
- rendered_image_reference_sequence = 7344388
- volumetric_presentation_state_input_sequence = 7344641
- presentation_input_type = 7344642
- input_sequence_position_index = 7344643
- crop = 7344644
- cropping_specification_index = 7344645
- compositing_method = 7344646
- volumetric_presentation_input_number = 7344647
- image_volume_geometry = 7344648
- volume_cropping_sequence = 7344897
- volume_cropping_method = 7344898
- bounding_box_crop = 7344899
- oblique_cropping_plane_sequence = 7344900
- plane = 7344901
- plane_normal = 7344902
- cropping_specification_number = 7344905
- multi_planar_reconstruction_style = 7345409
- mpr_thickness_type = 7345410
- mpr_slab_thickness = 7345411
- mpr_top_left_hand_corner = 7345413
- mpr_view_width_direction = 7345415
- mpr_view_width = 7345416
- number_of_volumetric_curve_points = 7345420
- volumetric_curve_points = 7345421
- mpr_view_height_direction = 7345425
- mpr_view_height = 7345426
- presentation_state_classification_component_sequence = 7346177
- component_type = 7346178
- component_input_sequence = 7346179
- volumetric_presentation_input_index = 7346180
- presentation_state_compositor_component_sequence = 7346181
- weighting_transfer_function_sequence = 7346182
- weighting_lookup_table_descriptor = 7346183
- weighting_lookup_table_data = 7346184
- volumetric_annotation_sequence = 7346433
- referenced_structured_context_sequence = 7346435
- referenced_content_item = 7346436
- volumetric_presentation_input_annotation_sequence = 7346437
- annotation_clipping = 7346439
- presentation_animation_style = 7346689
- recommended_animation_rate = 7346691
- animation_curve_sequence = 7346692
- animation_step_size = 7346693
- hanging_protocol_name = 7471106
- hanging_protocol_description = 7471108
- hanging_protocol_level = 7471110
- hanging_protocol_creator = 7471112
- hanging_protocol_creation_datetime = 7471114
- hanging_protocol_definition_sequence = 7471116
- hanging_protocol_user_identification_code_sequence = 7471118
- hanging_protocol_user_group_name = 7471120
- source_hanging_protocol_sequence = 7471122
- number_of_priors_referenced = 7471124
- image_sets_sequence = 7471136
- image_set_selector_sequence = 7471138
- image_set_selector_usage_flag = 7471140
- selector_attribute = 7471142
- selector_value_number = 7471144
- time_based_image_sets_sequence = 7471152
- image_set_number = 7471154
- image_set_selector_category = 7471156
- relative_time = 7471160
- relative_time_units = 7471162
- abstract_prior_value = 7471164
- abstract_prior_code_sequence = 7471166
- image_set_label = 7471168
- selector_attribute_vr = 7471184
- selector_sequence_pointer = 7471186
- selector_sequence_pointer_private_creator = 7471188
- selector_attribute_private_creator = 7471190
- selector_ae_value = 7471198
- selector_as_value = 7471199
- selector_at_value = 7471200
- selector_da_value = 7471201
- selector_cs_value = 7471202
- selector_dt_value = 7471203
- selector_is_value = 7471204
- selector_ob_value = 7471205
- selector_lo_value = 7471206
- selector_of_value = 7471207
- selector_lt_value = 7471208
- selector_ow_value = 7471209
- selector_pn_value = 7471210
- selector_tm_value = 7471211
- selector_sh_value = 7471212
- selector_un_value = 7471213
- selector_st_value = 7471214
- selector_uc_value = 7471215
- selector_ut_value = 7471216
- selector_ur_value = 7471217
- selector_ds_value = 7471218
- selector_od_value = 7471219
- selector_fd_value = 7471220
- selector_ol_value = 7471221
- selector_fl_value = 7471222
- selector_ul_value = 7471224
- selector_us_value = 7471226
- selector_sl_value = 7471228
- selector_ss_value = 7471230
- selector_ui_value = 7471231
- selector_code_sequence_value = 7471232
- number_of_screens = 7471360
- nominal_screen_definition_sequence = 7471362
- number_of_vertical_pixels = 7471364
- number_of_horizontal_pixels = 7471366
- display_environment_spatial_position = 7471368
- screen_minimum_grayscale_bit_depth = 7471370
- screen_minimum_color_bit_depth = 7471372
- application_maximum_repaint_time = 7471374
- display_sets_sequence = 7471616
- display_set_number = 7471618
- display_set_label = 7471619
- display_set_presentation_group = 7471620
- display_set_presentation_group_description = 7471622
- partial_data_display_handling = 7471624
- synchronized_scrolling_sequence = 7471632
- display_set_scrolling_group = 7471634
- navigation_indicator_sequence = 7471636
- navigation_display_set = 7471638
- reference_display_sets = 7471640
- image_boxes_sequence = 7471872
- image_box_number = 7471874
- image_box_layout_type = 7471876
- image_box_tile_horizontal_dimension = 7471878
- image_box_tile_vertical_dimension = 7471880
- image_box_scroll_direction = 7471888
- image_box_small_scroll_type = 7471890
- image_box_small_scroll_amount = 7471892
- image_box_large_scroll_type = 7471894
- image_box_large_scroll_amount = 7471896
- image_box_overlap_priority = 7471904
- cine_relative_to_real_time = 7471920
- filter_operations_sequence = 7472128
- filter_by_category = 7472130
- filter_by_attribute_presence = 7472132
- filter_by_operator = 7472134
- structured_display_background_cielab_value = 7472160
- empty_image_box_cielab_value = 7472161
- structured_display_image_box_sequence = 7472162
- structured_display_text_box_sequence = 7472164
- referenced_first_frame_sequence = 7472167
- image_box_synchronization_sequence = 7472176
- synchronized_image_box_list = 7472178
- type_of_synchronization = 7472180
- blending_operation_type = 7472384
- reformatting_operation_type = 7472400
- reformatting_thickness = 7472402
- reformatting_interval = 7472404
- reformatting_operation_initial_view_direction = 7472406
- tag_3d_rendering_type = 7472416
- sorting_operations_sequence = 7472640
- sort_by_category = 7472642
- sorting_direction = 7472644
- display_set_patient_orientation = 7472896
- voi_type = 7472898
- pseudo_color_type = 7472900
- pseudo_color_palette_instance_reference_sequence = 7472901
- show_grayscale_inverted = 7472902
- show_image_true_size_flag = 7472912
- show_graphic_annotation_flag = 7472914
- show_patient_demographics_flag = 7472916
- show_acquisition_techniques_flag = 7472918
- display_set_horizontal_justification = 7472919
- display_set_vertical_justification = 7472920
- continuation_start_meterset = 7602464
- continuation_end_meterset = 7602465
- procedure_step_state = 7606272
- procedure_step_progress_information_sequence = 7606274
- procedure_step_progress = 7606276
- procedure_step_progress_description = 7606278
- procedure_step_communications_uri_sequence = 7606280
- contact_uri = 7606282
- contact_display_name = 7606284
- procedure_step_discontinuation_reason_code_sequence = 7606286
- beam_task_sequence = 7606304
- beam_task_type = 7606306
- beam_order_index__trial_ = 7606308
- autosequence_flag = 7606309
- table_top_vertical_adjusted_position = 7606310
- table_top_longitudinal_adjusted_position = 7606311
- table_top_lateral_adjusted_position = 7606312
- patient_support_adjusted_angle = 7606314
- table_top_eccentric_adjusted_angle = 7606315
- table_top_pitch_adjusted_angle = 7606316
- table_top_roll_adjusted_angle = 7606317
- delivery_verification_image_sequence = 7606320
- verification_image_timing = 7606322
- double_exposure_flag = 7606324
- double_exposure_ordering = 7606326
- double_exposure_meterset__trial_ = 7606328
- double_exposure_field_delta__trial_ = 7606330
- related_reference_rt_image_sequence = 7606336
- general_machine_verification_sequence = 7606338
- conventional_machine_verification_sequence = 7606340
- ion_machine_verification_sequence = 7606342
- failed_attributes_sequence = 7606344
- overridden_attributes_sequence = 7606346
- conventional_control_point_verification_sequence = 7606348
- ion_control_point_verification_sequence = 7606350
- attribute_occurrence_sequence = 7606352
- attribute_occurrence_pointer = 7606354
- attribute_item_selector = 7606356
- attribute_occurrence_private_creator = 7606358
- selector_sequence_pointer_items = 7606359
- scheduled_procedure_step_priority = 7606784
- worklist_label = 7606786
- procedure_step_label = 7606788
- scheduled_processing_parameters_sequence = 7606800
- performed_processing_parameters_sequence = 7606802
- unified_procedure_step_performed_procedure_sequence = 7606806
- related_procedure_step_sequence = 7606816
- procedure_step_relationship_type = 7606818
- replaced_procedure_step_sequence = 7606820
- deletion_lock = 7606832
- receiving_ae = 7606836
- requesting_ae = 7606838
- reason_for_cancellation = 7606840
- scp_status = 7606850
- subscription_list_status = 7606852
- unified_procedure_step_list_status = 7606854
- beam_order_index = 7607076
- double_exposure_meterset = 7607096
- double_exposure_field_delta = 7607098
- brachy_task_sequence = 7607297
- continuation_start_total_reference_air_kerma = 7607298
- continuation_end_total_reference_air_kerma = 7607299
- continuation_pulse_number = 7607300
- channel_delivery_order_sequence = 7607301
- referenced_channel_number = 7607302
- start_cumulative_time_weight = 7607303
- end_cumulative_time_weight = 7607304
- omitted_channel_sequence = 7607305
- reason_for_channel_omission = 7607306
- reason_for_channel_omission_description = 7607307
- channel_delivery_order_index = 7607308
- channel_delivery_continuation_sequence = 7607309
- omitted_application_setup_sequence = 7607310
- implant_assembly_template_name = 7733249
- implant_assembly_template_issuer = 7733251
- implant_assembly_template_version = 7733254
- replaced_implant_assembly_template_sequence = 7733256
- implant_assembly_template_type = 7733258
- original_implant_assembly_template_sequence = 7733260
- derivation_implant_assembly_template_sequence = 7733262
- implant_assembly_template_target_anatomy_sequence = 7733264
- procedure_type_code_sequence = 7733280
- surgical_technique = 7733296
- component_types_sequence = 7733298
- component_type_code_sequence = 7733300
- exclusive_component_type = 7733302
- mandatory_component_type = 7733304
- component_sequence = 7733312
- component_id = 7733333
- component_assembly_sequence = 7733344
- component_1_referenced_id = 7733360
- component_1_referenced_mating_feature_set_id = 7733376
- component_1_referenced_mating_feature_id = 7733392
- component_2_referenced_id = 7733408
- component_2_referenced_mating_feature_set_id = 7733424
- component_2_referenced_mating_feature_id = 7733440
- implant_template_group_name = 7864321
- implant_template_group_description = 7864336
- implant_template_group_issuer = 7864352
- implant_template_group_version = 7864356
- replaced_implant_template_group_sequence = 7864358
- implant_template_group_target_anatomy_sequence = 7864360
- implant_template_group_members_sequence = 7864362
- implant_template_group_member_id = 7864366
- tag_3d_implant_template_group_member_matching_point = 7864400
- tag_3d_implant_template_group_member_matching_axes = 7864416
- implant_template_group_member_matching_2d_coordinates_sequence = 7864432
- tag_2d_implant_template_group_member_matching_point = 7864464
- tag_2d_implant_template_group_member_matching_axes = 7864480
- implant_template_group_variation_dimension_sequence = 7864496
- implant_template_group_variation_dimension_name = 7864498
- implant_template_group_variation_dimension_rank_sequence = 7864500
- referenced_implant_template_group_member_id = 7864502
- implant_template_group_variation_dimension_rank = 7864504
- surface_scan_acquisition_type_code_sequence = 8388609
- surface_scan_mode_code_sequence = 8388610
- registration_method_code_sequence = 8388611
- shot_duration_time = 8388612
- shot_offset_time = 8388613
- surface_point_presentation_value_data = 8388614
- surface_point_color_cielab_value_data = 8388615
- uv_mapping_sequence = 8388616
- texture_label = 8388617
- u_value_data = 8388624
- v_value_data = 8388625
- referenced_texture_sequence = 8388626
- referenced_surface_data_sequence = 8388627
- assessment_summary = 8519681
- assessment_summary_description = 8519683
- assessed_sop_instance_sequence = 8519684
- referenced_comparison_sop_instance_sequence = 8519685
- number_of_assessment_observations = 8519686
- assessment_observations_sequence = 8519687
- observation_significance = 8519688
- observation_description = 8519690
- structured_constraint_observation_sequence = 8519692
- assessed_attribute_value_sequence = 8519696
- assessment_set_id = 8519702
- assessment_requester_sequence = 8519703
- selector_attribute_name = 8519704
- selector_attribute_keyword = 8519705
- assessment_type_code_sequence = 8519713
- observation_basis_code_sequence = 8519714
- assessment_label = 8519715
- constraint_type = 8519730
- specification_selection_guidance = 8519731
- constraint_value_sequence = 8519732
- recommended_default_value_sequence = 8519733
- constraint_violation_significance = 8519734
- constraint_violation_condition = 8519735
- storage_media_file_set_id = 8913200
- storage_media_file_set_uid = 8913216
- icon_image_sequence = 8913408
- topic_title = 8915204
- topic_subject = 8915206
- topic_author = 8915216
- topic_keywords = 8915218
- sop_instance_status = 16778256
- sop_authorization_datetime = 16778272
- sop_authorization_comment = 16778276
- authorization_equipment_certification_number = 16778278
- mac_id_number = 67108869
- mac_calculation_transfer_syntax_uid = 67108880
- mac_algorithm = 67108885
- data_elements_signed = 67108896
- digital_signature_uid = 67109120
- digital_signature_datetime = 67109125
- certificate_type = 67109136
- certificate_of_signer = 67109141
- signature = 67109152
- certified_timestamp_type = 67109637
- certified_timestamp = 67109648
- digital_signature_purpose_code_sequence = 67109889
- referenced_digital_signature_sequence = 67109890
- referenced_sop_instance_mac_sequence = 67109891
- mac = 67109892
- encrypted_attributes_sequence = 67110144
- encrypted_content_transfer_syntax_uid = 67110160
- encrypted_content = 67110176
- modified_attributes_sequence = 67110224
- original_attributes_sequence = 67110241
- attribute_modification_datetime = 67110242
- modifying_system = 67110243
- source_of_previous_values = 67110244
- reason_for_the_attribute_modification = 67110245
- number_of_copies = 536870928
- printer_configuration_sequence = 536870942
- print_priority = 536870944
- medium_type = 536870960
- film_destination = 536870976
- film_session_label = 536870992
- memory_allocation = 536871008
- maximum_memory_allocation = 536871009
- color_image_printing_flag = 536871010
- collation_flag = 536871011
- annotation_flag = 536871013
- image_overlay_flag = 536871015
- presentation_lut_flag = 536871017
- image_box_presentation_lut_flag = 536871018
- memory_bit_depth = 536871072
- printing_bit_depth = 536871073
- media_installed_sequence = 536871074
- other_media_available_sequence = 536871076
- supported_image_display_formats_sequence = 536871080
- referenced_film_box_sequence = 536872192
- referenced_stored_print_sequence = 536872208
- image_display_format = 537919504
- annotation_display_format_id = 537919536
- film_orientation = 537919552
- film_size_id = 537919568
- printer_resolution_id = 537919570
- default_printer_resolution_id = 537919572
- magnification_type = 537919584
- smoothing_type = 537919616
- default_magnification_type = 537919654
- other_magnification_types_available = 537919655
- default_smoothing_type = 537919656
- other_smoothing_types_available = 537919657
- border_density = 537919744
- empty_image_density = 537919760
- min_density = 537919776
- max_density = 537919792
- trim = 537919808
- configuration_information = 537919824
- configuration_information_description = 537919826
- maximum_collated_films = 537919828
- illumination = 537919838
- reflected_ambient_light = 537919840
- printer_pixel_spacing = 537920374
- referenced_film_session_sequence = 537920768
- referenced_image_box_sequence = 537920784
- referenced_basic_annotation_box_sequence = 537920800
- image_box_position = 538968080
- polarity = 538968096
- requested_image_size = 538968112
- requested_decimate_crop_behavior = 538968128
- requested_resolution_id = 538968144
- requested_image_size_flag = 538968224
- decimate_crop_result = 538968226
- basic_grayscale_image_sequence = 538968336
- basic_color_image_sequence = 538968337
- referenced_image_overlay_box_sequence = 538968368
- referenced_voi_lut_box_sequence = 538968384
- annotation_position = 540016656
- text_string = 540016672
- referenced_overlay_plane_sequence = 541065232
- referenced_overlay_plane_groups = 541065233
- overlay_pixel_data_sequence = 541065248
- overlay_magnification_type = 541065312
- overlay_smoothing_type = 541065328
- overlay_or_image_magnification = 541065330
- magnify_to_number_of_columns = 541065332
- overlay_foreground_density = 541065344
- overlay_background_density = 541065346
- overlay_mode = 541065360
- threshold_density = 541065472
- referenced_image_box_sequence__retired_ = 541066496
- presentation_lut_sequence = 542113808
- presentation_lut_shape = 542113824
- referenced_presentation_lut_sequence = 542115072
- print_job_id = 553648144
- execution_status = 553648160
- execution_status_info = 553648176
- creation_date = 553648192
- creation_time = 553648208
- originator = 553648240
- destination_ae = 553648448
- owner_id = 553648480
- number_of_films = 553648496
- referenced_print_job_sequence__pull_stored_print_ = 553649408
- printer_status = 554696720
- printer_status_info = 554696736
- printer_name = 554696752
- print_queue_id = 554696857
- queue_status = 555745296
- print_job_description_sequence = 555745360
- referenced_print_job_sequence = 555745392
- print_management_capabilities_sequence = 556793872
- printer_characteristics_sequence = 556793877
- film_box_content_sequence = 556793904
- image_box_content_sequence = 556793920
- annotation_content_sequence = 556793936
- image_overlay_box_content_sequence = 556793952
- presentation_lut_content_sequence = 556793984
- proposed_study_sequence = 556794016
- original_image_sequence = 556794048
- label_using_information_extracted_from_instances = 570425345
- label_text = 570425346
- label_style_selection = 570425347
- media_disposition = 570425348
- barcode_value = 570425349
- barcode_symbology = 570425350
- allow_media_splitting = 570425351
- include_non_dicom_objects = 570425352
- include_display_application = 570425353
- preserve_composite_instances_after_media_creation = 570425354
- total_number_of_pieces_of_media_created = 570425355
- requested_media_application_profile = 570425356
- referenced_storage_media_sequence = 570425357
- failure_attributes = 570425358
- allow_lossy_compression = 570425359
- request_priority = 570425376
- rt_image_label = 805437442
- rt_image_name = 805437443
- rt_image_description = 805437444
- reported_values_origin = 805437450
- rt_image_plane = 805437452
- x_ray_image_receptor_translation = 805437453
- x_ray_image_receptor_angle = 805437454
- rt_image_orientation = 805437456
- image_plane_pixel_spacing = 805437457
- rt_image_position = 805437458
- radiation_machine_name = 805437472
- radiation_machine_sad = 805437474
- radiation_machine_ssd = 805437476
- rt_image_sid = 805437478
- source_to_reference_object_distance = 805437480
- fraction_number = 805437481
- exposure_sequence = 805437488
- meterset_exposure = 805437490
- diaphragm_position = 805437492
- fluence_map_sequence = 805437504
- fluence_data_source = 805437505
- fluence_data_scale = 805437506
- primary_fluence_mode_sequence = 805437520
- fluence_mode = 805437521
- fluence_mode_id = 805437522
- dvh_type = 805568513
- dose_units = 805568514
- dose_type = 805568516
- spatial_transform_of_dose = 805568517
- dose_comment = 805568518
- normalization_point = 805568520
- dose_summation_type = 805568522
- grid_frame_offset_vector = 805568524
- dose_grid_scaling = 805568526
- rt_dose_roi_sequence = 805568528
- dose_value = 805568530
- tissue_heterogeneity_correction = 805568532
- dvh_normalization_point = 805568576
- dvh_normalization_dose_value = 805568578
- dvh_sequence = 805568592
- dvh_dose_scaling = 805568594
- dvh_volume_units = 805568596
- dvh_number_of_bins = 805568598
- dvh_data = 805568600
- dvh_referenced_roi_sequence = 805568608
- dvh_roi_contribution_type = 805568610
- dvh_minimum_dose = 805568624
- dvh_maximum_dose = 805568626
- dvh_mean_dose = 805568628
- structure_set_label = 805699586
- structure_set_name = 805699588
- structure_set_description = 805699590
- structure_set_date = 805699592
- structure_set_time = 805699593
- referenced_frame_of_reference_sequence = 805699600
- rt_referenced_study_sequence = 805699602
- rt_referenced_series_sequence = 805699604
- contour_image_sequence = 805699606
- predecessor_structure_set_sequence = 805699608
- structure_set_roi_sequence = 805699616
- roi_number = 805699618
- referenced_frame_of_reference_uid = 805699620
- roi_name = 805699622
- roi_description = 805699624
- roi_display_color = 805699626
- roi_volume = 805699628
- rt_related_roi_sequence = 805699632
- rt_roi_relationship = 805699635
- roi_generation_algorithm = 805699638
- roi_generation_description = 805699640
- roi_contour_sequence = 805699641
- contour_sequence = 805699648
- contour_geometric_type = 805699650
- contour_slab_thickness = 805699652
- contour_offset_vector = 805699653
- number_of_contour_points = 805699654
- contour_number = 805699656
- attached_contours = 805699657
- contour_data = 805699664
- rt_roi_observations_sequence = 805699712
- observation_number = 805699714
- referenced_roi_number = 805699716
- roi_observation_label = 805699717
- rt_roi_identification_code_sequence = 805699718
- roi_observation_description = 805699720
- related_rt_roi_observations_sequence = 805699744
- rt_roi_interpreted_type = 805699748
- roi_interpreter = 805699750
- roi_physical_properties_sequence = 805699760
- roi_physical_property = 805699762
- roi_physical_property_value = 805699764
- roi_elemental_composition_sequence = 805699766
- roi_elemental_composition_atomic_number = 805699767
- roi_elemental_composition_atomic_mass_fraction = 805699768
- additional_rt_roi_identification_code_sequence = 805699769
- frame_of_reference_relationship_sequence = 805699776
- related_frame_of_reference_uid = 805699778
- frame_of_reference_transformation_type = 805699780
- frame_of_reference_transformation_matrix = 805699782
- frame_of_reference_transformation_comment = 805699784
- measured_dose_reference_sequence = 805830672
- measured_dose_description = 805830674
- measured_dose_type = 805830676
- measured_dose_value = 805830678
- treatment_session_beam_sequence = 805830688
- treatment_session_ion_beam_sequence = 805830689
- current_fraction_number = 805830690
- treatment_control_point_date = 805830692
- treatment_control_point_time = 805830693
- treatment_termination_status = 805830698
- treatment_termination_code = 805830699
- treatment_verification_status = 805830700
- referenced_treatment_record_sequence = 805830704
- specified_primary_meterset = 805830706
- specified_secondary_meterset = 805830707
- delivered_primary_meterset = 805830710
- delivered_secondary_meterset = 805830711
- specified_treatment_time = 805830714
- delivered_treatment_time = 805830715
- control_point_delivery_sequence = 805830720
- ion_control_point_delivery_sequence = 805830721
- specified_meterset = 805830722
- delivered_meterset = 805830724
- meterset_rate_set = 805830725
- meterset_rate_delivered = 805830726
- scan_spot_metersets_delivered = 805830727
- dose_rate_delivered = 805830728
- treatment_summary_calculated_dose_reference_sequence = 805830736
- cumulative_dose_to_dose_reference = 805830738
- first_treatment_date = 805830740
- most_recent_treatment_date = 805830742
- number_of_fractions_delivered = 805830746
- override_sequence = 805830752
- parameter_sequence_pointer = 805830753
- override_parameter_pointer = 805830754
- parameter_item_index = 805830755
- measured_dose_reference_number = 805830756
- parameter_pointer = 805830757
- override_reason = 805830758
- corrected_parameter_sequence = 805830760
- correction_value = 805830762
- calculated_dose_reference_sequence = 805830768
- calculated_dose_reference_number = 805830770
- calculated_dose_reference_description = 805830772
- calculated_dose_reference_dose_value = 805830774
- start_meterset = 805830776
- end_meterset = 805830778
- referenced_measured_dose_reference_sequence = 805830784
- referenced_measured_dose_reference_number = 805830786
- referenced_calculated_dose_reference_sequence = 805830800
- referenced_calculated_dose_reference_number = 805830802
- beam_limiting_device_leaf_pairs_sequence = 805830816
- recorded_wedge_sequence = 805830832
- recorded_compensator_sequence = 805830848
- recorded_block_sequence = 805830864
- treatment_summary_measured_dose_reference_sequence = 805830880
- recorded_snout_sequence = 805830896
- recorded_range_shifter_sequence = 805830898
- recorded_lateral_spreading_device_sequence = 805830900
- recorded_range_modulator_sequence = 805830902
- recorded_source_sequence = 805830912
- source_serial_number = 805830917
- treatment_session_application_setup_sequence = 805830928
- application_setup_check = 805830934
- recorded_brachy_accessory_device_sequence = 805830944
- referenced_brachy_accessory_device_number = 805830946
- recorded_channel_sequence = 805830960
- specified_channel_total_time = 805830962
- delivered_channel_total_time = 805830964
- specified_number_of_pulses = 805830966
- delivered_number_of_pulses = 805830968
- specified_pulse_repetition_interval = 805830970
- delivered_pulse_repetition_interval = 805830972
- recorded_source_applicator_sequence = 805830976
- referenced_source_applicator_number = 805830978
- recorded_channel_shield_sequence = 805830992
- referenced_channel_shield_number = 805830994
- brachy_control_point_delivered_sequence = 805831008
- safe_position_exit_date = 805831010
- safe_position_exit_time = 805831012
- safe_position_return_date = 805831014
- safe_position_return_time = 805831016
- pulse_specific_brachy_control_point_delivered_sequence = 805831025
- pulse_number = 805831026
- brachy_pulse_control_point_delivered_sequence = 805831027
- current_treatment_status = 805831168
- treatment_status_comment = 805831170
- fraction_group_summary_sequence = 805831200
- referenced_fraction_number = 805831203
- fraction_group_type = 805831204
- beam_stopper_position = 805831216
- fraction_status_summary_sequence = 805831232
- treatment_date = 805831248
- treatment_time = 805831249
- rt_plan_label = 805961730
- rt_plan_name = 805961731
- rt_plan_description = 805961732
- rt_plan_date = 805961734
- rt_plan_time = 805961735
- treatment_protocols = 805961737
- plan_intent = 805961738
- treatment_sites = 805961739
- rt_plan_geometry = 805961740
- prescription_description = 805961742
- dose_reference_sequence = 805961744
- dose_reference_number = 805961746
- dose_reference_uid = 805961747
- dose_reference_structure_type = 805961748
- nominal_beam_energy_unit = 805961749
- dose_reference_description = 805961750
- dose_reference_point_coordinates = 805961752
- nominal_prior_dose = 805961754
- dose_reference_type = 805961760
- constraint_weight = 805961761
- delivery_warning_dose = 805961762
- delivery_maximum_dose = 805961763
- target_minimum_dose = 805961765
- target_prescription_dose = 805961766
- target_maximum_dose = 805961767
- target_underdose_volume_fraction = 805961768
- organ_at_risk_full_volume_dose = 805961770
- organ_at_risk_limit_dose = 805961771
- organ_at_risk_maximum_dose = 805961772
- organ_at_risk_overdose_volume_fraction = 805961773
- tolerance_table_sequence = 805961792
- tolerance_table_number = 805961794
- tolerance_table_label = 805961795
- gantry_angle_tolerance = 805961796
- beam_limiting_device_angle_tolerance = 805961798
- beam_limiting_device_tolerance_sequence = 805961800
- beam_limiting_device_position_tolerance = 805961802
- snout_position_tolerance = 805961803
- patient_support_angle_tolerance = 805961804
- table_top_eccentric_angle_tolerance = 805961806
- table_top_pitch_angle_tolerance = 805961807
- table_top_roll_angle_tolerance = 805961808
- table_top_vertical_position_tolerance = 805961809
- table_top_longitudinal_position_tolerance = 805961810
- table_top_lateral_position_tolerance = 805961811
- rt_plan_relationship = 805961813
- fraction_group_sequence = 805961840
- fraction_group_number = 805961841
- fraction_group_description = 805961842
- number_of_fractions_planned = 805961848
- number_of_fraction_pattern_digits_per_day = 805961849
- repeat_fraction_cycle_length = 805961850
- fraction_pattern = 805961851
- number_of_beams = 805961856
- beam_dose_specification_point = 805961858
- beam_dose = 805961860
- beam_meterset = 805961862
- beam_dose_point_depth = 805961864
- beam_dose_point_equivalent_depth = 805961865
- beam_dose_point_ssd = 805961866
- beam_dose_meaning = 805961867
- beam_dose_verification_control_point_sequence = 805961868
- average_beam_dose_point_depth = 805961869
- average_beam_dose_point_equivalent_depth = 805961870
- average_beam_dose_point_ssd = 805961871
- beam_dose_type = 805961872
- alternate_beam_dose = 805961873
- alternate_beam_dose_type = 805961874
- number_of_brachy_application_setups = 805961888
- brachy_application_setup_dose_specification_point = 805961890
- brachy_application_setup_dose = 805961892
- beam_sequence = 805961904
- treatment_machine_name = 805961906
- primary_dosimeter_unit = 805961907
- source_axis_distance = 805961908
- beam_limiting_device_sequence = 805961910
- rt_beam_limiting_device_type = 805961912
- source_to_beam_limiting_device_distance = 805961914
- isocenter_to_beam_limiting_device_distance = 805961915
- number_of_leaf_jaw_pairs = 805961916
- leaf_position_boundaries = 805961918
- beam_number = 805961920
- beam_name = 805961922
- beam_description = 805961923
- beam_type = 805961924
- beam_delivery_duration_limit = 805961925
- radiation_type = 805961926
- high_dose_technique_type = 805961927
- reference_image_number = 805961928
- planned_verification_image_sequence = 805961930
- imaging_device_specific_acquisition_parameters = 805961932
- treatment_delivery_type = 805961934
- number_of_wedges = 805961936
- wedge_sequence = 805961937
- wedge_number = 805961938
- wedge_type = 805961939
- wedge_id = 805961940
- wedge_angle = 805961941
- wedge_factor = 805961942
- total_wedge_tray_water_equivalent_thickness = 805961943
- wedge_orientation = 805961944
- isocenter_to_wedge_tray_distance = 805961945
- source_to_wedge_tray_distance = 805961946
- wedge_thin_edge_position = 805961947
- bolus_id = 805961948
- bolus_description = 805961949
- effective_wedge_angle = 805961950
- number_of_compensators = 805961952
- material_id = 805961953
- total_compensator_tray_factor = 805961954
- compensator_sequence = 805961955
- compensator_number = 805961956
- compensator_id = 805961957
- source_to_compensator_tray_distance = 805961958
- compensator_rows = 805961959
- compensator_columns = 805961960
- compensator_pixel_spacing = 805961961
- compensator_position = 805961962
- compensator_transmission_data = 805961963
- compensator_thickness_data = 805961964
- number_of_boli = 805961965
- compensator_type = 805961966
- compensator_tray_id = 805961967
- number_of_blocks = 805961968
- total_block_tray_factor = 805961970
- total_block_tray_water_equivalent_thickness = 805961971
- block_sequence = 805961972
- block_tray_id = 805961973
- source_to_block_tray_distance = 805961974
- isocenter_to_block_tray_distance = 805961975
- block_type = 805961976
- accessory_code = 805961977
- block_divergence = 805961978
- block_mounting_position = 805961979
- block_number = 805961980
- block_name = 805961982
- block_thickness = 805961984
- block_transmission = 805961986
- block_number_of_points = 805961988
- block_data = 805961990
- applicator_sequence = 805961991
- applicator_id = 805961992
- applicator_type = 805961993
- applicator_description = 805961994
- cumulative_dose_reference_coefficient = 805961996
- final_cumulative_meterset_weight = 805961998
- number_of_control_points = 805962000
- control_point_sequence = 805962001
- control_point_index = 805962002
- nominal_beam_energy = 805962004
- dose_rate_set = 805962005
- wedge_position_sequence = 805962006
- wedge_position = 805962008
- beam_limiting_device_position_sequence = 805962010
- leaf_jaw_positions = 805962012
- gantry_angle = 805962014
- gantry_rotation_direction = 805962015
- beam_limiting_device_angle = 805962016
- beam_limiting_device_rotation_direction = 805962017
- patient_support_angle = 805962018
- patient_support_rotation_direction = 805962019
- table_top_eccentric_axis_distance = 805962020
- table_top_eccentric_angle = 805962021
- table_top_eccentric_rotation_direction = 805962022
- table_top_vertical_position = 805962024
- table_top_longitudinal_position = 805962025
- table_top_lateral_position = 805962026
- isocenter_position = 805962028
- surface_entry_point = 805962030
- source_to_surface_distance = 805962032
- average_beam_dose_point_source_to_external_contour_distance = 805962033
- source_to_external_contour_distance = 805962034
- external_contour_entry_point = 805962035
- cumulative_meterset_weight = 805962036
- table_top_pitch_angle = 805962048
- table_top_pitch_rotation_direction = 805962050
- table_top_roll_angle = 805962052
- table_top_roll_rotation_direction = 805962054
- head_fixation_angle = 805962056
- gantry_pitch_angle = 805962058
- gantry_pitch_rotation_direction = 805962060
- gantry_pitch_angle_tolerance = 805962062
- fixation_eye = 805962064
- chair_head_frame_position = 805962065
- head_fixation_angle_tolerance = 805962066
- chair_head_frame_position_tolerance = 805962067
- fixation_light_azimuthal_angle_tolerance = 805962068
- fixation_light_polar_angle_tolerance = 805962069
- patient_setup_sequence = 805962112
- patient_setup_number = 805962114
- patient_setup_label = 805962115
- patient_additional_position = 805962116
- fixation_device_sequence = 805962128
- fixation_device_type = 805962130
- fixation_device_label = 805962132
- fixation_device_description = 805962134
- fixation_device_position = 805962136
- fixation_device_pitch_angle = 805962137
- fixation_device_roll_angle = 805962138
- shielding_device_sequence = 805962144
- shielding_device_type = 805962146
- shielding_device_label = 805962148
- shielding_device_description = 805962150
- shielding_device_position = 805962152
- setup_technique = 805962160
- setup_technique_description = 805962162
- setup_device_sequence = 805962164
- setup_device_type = 805962166
- setup_device_label = 805962168
- setup_device_description = 805962170
- setup_device_parameter = 805962172
- setup_reference_description = 805962192
- table_top_vertical_setup_displacement = 805962194
- table_top_longitudinal_setup_displacement = 805962196
- table_top_lateral_setup_displacement = 805962198
- brachy_treatment_technique = 805962240
- brachy_treatment_type = 805962242
- treatment_machine_sequence = 805962246
- source_sequence = 805962256
- source_number = 805962258
- source_type = 805962260
- source_manufacturer = 805962262
- active_source_diameter = 805962264
- active_source_length = 805962266
- source_model_id = 805962267
- source_description = 805962268
- source_encapsulation_nominal_thickness = 805962274
- source_encapsulation_nominal_transmission = 805962276
- source_isotope_name = 805962278
- source_isotope_half_life = 805962280
- source_strength_units = 805962281
- reference_air_kerma_rate = 805962282
- source_strength = 805962283
- source_strength_reference_date = 805962284
- source_strength_reference_time = 805962286
- application_setup_sequence = 805962288
- application_setup_type = 805962290
- application_setup_number = 805962292
- application_setup_name = 805962294
- application_setup_manufacturer = 805962296
- template_number = 805962304
- template_type = 805962306
- template_name = 805962308
- total_reference_air_kerma = 805962320
- brachy_accessory_device_sequence = 805962336
- brachy_accessory_device_number = 805962338
- brachy_accessory_device_id = 805962339
- brachy_accessory_device_type = 805962340
- brachy_accessory_device_name = 805962342
- brachy_accessory_device_nominal_thickness = 805962346
- brachy_accessory_device_nominal_transmission = 805962348
- channel_sequence = 805962368
- channel_number = 805962370
- channel_length = 805962372
- channel_total_time = 805962374
- source_movement_type = 805962376
- number_of_pulses = 805962378
- pulse_repetition_interval = 805962380
- source_applicator_number = 805962384
- source_applicator_id = 805962385
- source_applicator_type = 805962386
- source_applicator_name = 805962388
- source_applicator_length = 805962390
- source_applicator_manufacturer = 805962392
- source_applicator_wall_nominal_thickness = 805962396
- source_applicator_wall_nominal_transmission = 805962398
- source_applicator_step_size = 805962400
- transfer_tube_number = 805962402
- transfer_tube_length = 805962404
- channel_shield_sequence = 805962416
- channel_shield_number = 805962418
- channel_shield_id = 805962419
- channel_shield_name = 805962420
- channel_shield_nominal_thickness = 805962424
- channel_shield_nominal_transmission = 805962426
- final_cumulative_time_weight = 805962440
- brachy_control_point_sequence = 805962448
- control_point_relative_position = 805962450
- control_point_3d_position = 805962452
- cumulative_time_weight = 805962454
- compensator_divergence = 805962464
- compensator_mounting_position = 805962465
- source_to_compensator_distance = 805962466
- total_compensator_tray_water_equivalent_thickness = 805962467
- isocenter_to_compensator_tray_distance = 805962468
- compensator_column_offset = 805962469
- isocenter_to_compensator_distances = 805962470
- compensator_relative_stopping_power_ratio = 805962471
- compensator_milling_tool_diameter = 805962472
- ion_range_compensator_sequence = 805962474
- compensator_description = 805962475
- radiation_mass_number = 805962498
- radiation_atomic_number = 805962500
- radiation_charge_state = 805962502
- scan_mode = 805962504
- modulated_scan_mode_type = 805962505
- virtual_source_axis_distances = 805962506
- snout_sequence = 805962508
- snout_position = 805962509
- snout_id = 805962511
- number_of_range_shifters = 805962514
- range_shifter_sequence = 805962516
- range_shifter_number = 805962518
- range_shifter_id = 805962520
- range_shifter_type = 805962528
- range_shifter_description = 805962530
- number_of_lateral_spreading_devices = 805962544
- lateral_spreading_device_sequence = 805962546
- lateral_spreading_device_number = 805962548
- lateral_spreading_device_id = 805962550
- lateral_spreading_device_type = 805962552
- lateral_spreading_device_description = 805962554
- lateral_spreading_device_water_equivalent_thickness = 805962556
- number_of_range_modulators = 805962560
- range_modulator_sequence = 805962562
- range_modulator_number = 805962564
- range_modulator_id = 805962566
- range_modulator_type = 805962568
- range_modulator_description = 805962570
- beam_current_modulation_id = 805962572
- patient_support_type = 805962576
- patient_support_id = 805962578
- patient_support_accessory_code = 805962580
- tray_accessory_code = 805962581
- fixation_light_azimuthal_angle = 805962582
- fixation_light_polar_angle = 805962584
- meterset_rate = 805962586
- range_shifter_settings_sequence = 805962592
- range_shifter_setting = 805962594
- isocenter_to_range_shifter_distance = 805962596
- range_shifter_water_equivalent_thickness = 805962598
- lateral_spreading_device_settings_sequence = 805962608
- lateral_spreading_device_setting = 805962610
- isocenter_to_lateral_spreading_device_distance = 805962612
- range_modulator_settings_sequence = 805962624
- range_modulator_gating_start_value = 805962626
- range_modulator_gating_stop_value = 805962628
- range_modulator_gating_start_water_equivalent_thickness = 805962630
- range_modulator_gating_stop_water_equivalent_thickness = 805962632
- isocenter_to_range_modulator_distance = 805962634
- scan_spot_tune_id = 805962640
- scan_spot_prescribed_indices = 805962641
- number_of_scan_spot_positions = 805962642
- scan_spot_reordered = 805962643
- scan_spot_position_map = 805962644
- scan_spot_reordering_allowed = 805962645
- scan_spot_meterset_weights = 805962646
- scanning_spot_size = 805962648
- number_of_paintings = 805962650
- ion_tolerance_table_sequence = 805962656
- ion_beam_sequence = 805962658
- ion_beam_limiting_device_sequence = 805962660
- ion_block_sequence = 805962662
- ion_control_point_sequence = 805962664
- ion_wedge_sequence = 805962666
- ion_wedge_position_sequence = 805962668
- referenced_setup_image_sequence = 805962753
- setup_image_comment = 805962754
- motion_synchronization_sequence = 805962768
- control_point_orientation = 805962770
- general_accessory_sequence = 805962784
- general_accessory_id = 805962785
- general_accessory_description = 805962786
- general_accessory_type = 805962787
- general_accessory_number = 805962788
- source_to_general_accessory_distance = 805962789
- applicator_geometry_sequence = 805962801
- applicator_aperture_shape = 805962802
- applicator_opening = 805962803
- applicator_opening_x = 805962804
- applicator_opening_y = 805962805
- source_to_applicator_mounting_position_distance = 805962806
- number_of_block_slab_items = 805962816
- block_slab_sequence = 805962817
- block_slab_thickness = 805962818
- block_slab_number = 805962819
- device_motion_control_sequence = 805962832
- device_motion_execution_mode = 805962833
- device_motion_observation_mode = 805962834
- device_motion_parameter_code_sequence = 805962835
- distal_depth_fraction = 805963009
- distal_depth = 805963010
- nominal_range_modulation_fractions = 805963011
- nominal_range_modulated_region_depths = 805963012
- depth_dose_parameters_sequence = 805963013
- delivered_depth_dose_parameters_sequence = 805963014
- delivered_distal_depth_fraction = 805963015
- delivered_distal_depth = 805963016
- delivered_nominal_range_modulation_fractions = 805963017
- delivered_nominal_range_modulated_region_depths = 805963024
- delivered_reference_dose_definition = 805963025
- reference_dose_definition = 805963026
- referenced_rt_plan_sequence = 806092802
- referenced_beam_sequence = 806092804
- referenced_beam_number = 806092806
- referenced_reference_image_number = 806092807
- start_cumulative_meterset_weight = 806092808
- end_cumulative_meterset_weight = 806092809
- referenced_brachy_application_setup_sequence = 806092810
- referenced_brachy_application_setup_number = 806092812
- referenced_source_number = 806092814
- referenced_fraction_group_sequence = 806092832
- referenced_fraction_group_number = 806092834
- referenced_verification_image_sequence = 806092864
- referenced_reference_image_sequence = 806092866
- referenced_dose_reference_sequence = 806092880
- referenced_dose_reference_number = 806092881
- brachy_referenced_dose_reference_sequence = 806092885
- referenced_structure_set_sequence = 806092896
- referenced_patient_setup_number = 806092906
- referenced_dose_sequence = 806092928
- referenced_tolerance_table_number = 806092960
- referenced_bolus_sequence = 806092976
- referenced_wedge_number = 806092992
- referenced_compensator_number = 806093008
- referenced_block_number = 806093024
- referenced_control_point_index = 806093040
- referenced_control_point_sequence = 806093042
- referenced_start_control_point_index = 806093044
- referenced_stop_control_point_index = 806093046
- referenced_range_shifter_number = 806093056
- referenced_lateral_spreading_device_number = 806093058
- referenced_range_modulator_number = 806093060
- omitted_beam_task_sequence = 806093073
- reason_for_omission = 806093074
- reason_for_omission_description = 806093075
- approval_status = 806223874
- review_date = 806223876
- review_time = 806223877
- reviewer_name = 806223880
- arbitrary = 1073741840
- text_comments = 1073758208
- results_id = 1074266176
- results_id_issuer = 1074266178
- referenced_interpretation_sequence = 1074266192
- report_production_status__trial_ = 1074266367
- interpretation_recorded_date = 1074266368
- interpretation_recorded_time = 1074266369
- interpretation_recorder = 1074266370
- reference_to_recorded_sound = 1074266371
- interpretation_transcription_date = 1074266376
- interpretation_transcription_time = 1074266377
- interpretation_transcriber = 1074266378
- interpretation_text = 1074266379
- interpretation_author = 1074266380
- interpretation_approver_sequence = 1074266385
- interpretation_approval_date = 1074266386
- interpretation_approval_time = 1074266387
- physician_approving_interpretation = 1074266388
- interpretation_diagnosis_description = 1074266389
- interpretation_diagnosis_code_sequence = 1074266391
- results_distribution_list_sequence = 1074266392
- distribution_name = 1074266393
- distribution_address = 1074266394
- interpretation_id = 1074266624
- interpretation_id_issuer = 1074266626
- interpretation_type_id = 1074266640
- interpretation_status_id = 1074266642
- impressions = 1074266880
- results_comments = 1074282496
- low_energy_detectors = 1074790401
- high_energy_detectors = 1074790402
- detector_geometry_sequence = 1074790404
- threat_roi_voxel_sequence = 1074794497
- threat_roi_base = 1074794500
- threat_roi_extents = 1074794501
- threat_roi_bitmap = 1074794502
- route_segment_id = 1074794503
- gantry_type = 1074794504
- ooi_owner_type = 1074794505
- route_segment_sequence = 1074794506
- potential_threat_object_id = 1074794512
- threat_sequence = 1074794513
- threat_category = 1074794514
- threat_category_description = 1074794515
- atd_ability_assessment = 1074794516
- atd_assessment_flag = 1074794517
- atd_assessment_probability = 1074794518
- mass = 1074794519
- density = 1074794520
- z_effective = 1074794521
- boarding_pass_id = 1074794522
- center_of_mass = 1074794523
- center_of_pto = 1074794524
- bounding_polygon = 1074794525
- route_segment_start_location_id = 1074794526
- route_segment_end_location_id = 1074794527
- route_segment_location_id_type = 1074794528
- abort_reason = 1074794529
- volume_of_pto = 1074794531
- abort_flag = 1074794532
- route_segment_start_time = 1074794533
- route_segment_end_time = 1074794534
- tdr_type = 1074794535
- international_route_segment = 1074794536
- threat_detection_algorithm_and_version = 1074794537
- assigned_location = 1074794538
- alarm_decision_time = 1074794539
- alarm_decision = 1074794545
- number_of_total_objects = 1074794547
- number_of_alarm_objects = 1074794548
- pto_representation_sequence = 1074794551
- atd_assessment_sequence = 1074794552
- tip_type = 1074794553
- version = 1074794554
- ooi_owner_creation_time = 1074794561
- ooi_type = 1074794562
- ooi_size = 1074794563
- acquisition_status = 1074794564
- basis_materials_code_sequence = 1074794565
- phantom_type = 1074794566
- ooi_owner_sequence = 1074794567
- scan_type = 1074794568
- itinerary_id = 1074794577
- itinerary_id_type = 1074794578
- itinerary_id_assigning_authority = 1074794579
- route_id = 1074794580
- route_id_assigning_authority = 1074794581
- inbound_arrival_type = 1074794582
- carrier_id = 1074794584
- carrier_id_assigning_authority = 1074794585
- source_orientation = 1074794592
- source_position = 1074794593
- belt_height = 1074794594
- algorithm_routing_code_sequence = 1074794596
- transport_classification = 1074794599
- ooi_type_descriptor = 1074794600
- total_processing_time = 1074794601
- detector_calibration_data = 1074794604
- additional_screening_performed = 1074794605
- additional_inspection_selection_criteria = 1074794606
- additional_inspection_method_sequence = 1074794607
- ait_device_type = 1074794608
- qr_measurements_sequence = 1074794609
- target_material_sequence = 1074794610
- snr_threshold = 1074794611
- image_scale_representation = 1074794613
- referenced_pto_sequence = 1074794614
- referenced_tdr_instance_sequence = 1074794615
- pto_location_description = 1074794616
- anomaly_locator_indicator_sequence = 1074794617
- anomaly_locator_indicator = 1074794618
- pto_region_sequence = 1074794619
- inspection_selection_criteria = 1074794620
- secondary_inspection_method_sequence = 1074794621
- prcs_to_rcs_orientation = 1074794622
- mac_parameters_sequence = 1342046209
- shared_functional_groups_sequence = 1375769129
- per_frame_functional_groups_sequence = 1375769136
- waveform_sequence = 1409286400
- channel_minimum_value = 1409286416
- channel_maximum_value = 1409286418
- waveform_bits_allocated = 1409290244
- waveform_sample_interpretation = 1409290246
- waveform_padding_value = 1409290250
- waveform_data = 1409290256
- first_order_phase_correction_angle = 1442840592
- spectroscopy_data = 1442840608
- float_pixel_data = 2145386504
- double_float_pixel_data = 2145386505
- pixel_data = 2145386512
- coefficients_sdvn = 2145386528
- coefficients_sdhn = 2145386544
- coefficients_sddn = 2145386560
- digital_signatures_sequence = 4294639610
- data_set_trailing_padding = 4294770684
- item = 4294893568
- item_delimitation_item = 4294893581
- sequence_delimitation_item = 4294893789
- SEQ_FIELDS = ["file_header", "elements"]
- 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['file_header']['start'] = self._io.pos()
- self.file_header = self._root.TFileHeader(self._io, self, self._root)
- self.file_header._read()
- self._debug['file_header']['end'] = self._io.pos()
- self._debug['elements']['start'] = self._io.pos()
- self.elements = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['elements']:
- self._debug['elements']['arr'] = []
- self._debug['elements']['arr'].append({'start': self._io.pos()})
- _t_elements = self._root.TDataElementImplicit(self._io, self, self._root)
- _t_elements._read()
- self.elements.append(_t_elements)
- self._debug['elements']['arr'][len(self.elements) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['elements']['end'] = self._io.pos()
-
- class TFileHeader(KaitaiStruct):
- SEQ_FIELDS = ["preamble", "magic"]
- 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['preamble']['start'] = self._io.pos()
- self.preamble = self._io.read_bytes(128)
- self._debug['preamble']['end'] = self._io.pos()
- self._debug['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x44\x49\x43\x4D")
- self._debug['magic']['end'] = self._io.pos()
-
-
- class TDataElementExplicit(KaitaiStruct):
- """
- .. seealso::
- Source - http://dicom.nema.org/medical/dicom/current/output/html/part05.html#sect_7.1.2
- """
- SEQ_FIELDS = ["tag_group", "tag_elem", "vr", "reserved", "value_len", "value", "items", "elements_implicit"]
- 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_group']['start'] = self._io.pos()
- self.tag_group = self._io.read_u2le()
- self._debug['tag_group']['end'] = self._io.pos()
- self._debug['tag_elem']['start'] = self._io.pos()
- self.tag_elem = self._io.read_u2le()
- self._debug['tag_elem']['end'] = self._io.pos()
- if not (self.is_forced_implicit):
- self._debug['vr']['start'] = self._io.pos()
- self.vr = (self._io.read_bytes(2)).decode(u"ASCII")
- self._debug['vr']['end'] = self._io.pos()
-
- if ((self.is_long_len) and (not (self.is_forced_implicit))) :
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.read_u2le()
- self._debug['reserved']['end'] = self._io.pos()
-
- self._debug['value_len']['start'] = self._io.pos()
- _on = self.is_long_len
- if _on == False:
- self.value_len = self._io.read_u2le()
- elif _on == True:
- self.value_len = self._io.read_u4le()
- self._debug['value_len']['end'] = self._io.pos()
- if self.value_len != 4294967295:
- self._debug['value']['start'] = self._io.pos()
- self.value = self._io.read_bytes(self.value_len)
- self._debug['value']['end'] = self._io.pos()
-
- if ((self.vr == u"SQ") and (self.value_len == 4294967295)) :
- self._debug['items']['start'] = self._io.pos()
- self.items = []
- i = 0
- while True:
- if not 'arr' in self._debug['items']:
- self._debug['items']['arr'] = []
- self._debug['items']['arr'].append({'start': self._io.pos()})
- _t_items = self._root.SeqItem(self._io, self, self._root)
- _t_items._read()
- _ = _t_items
- self.items.append(_)
- self._debug['items']['arr'][len(self.items) - 1]['end'] = self._io.pos()
- if _.tag_elem == 57565:
- break
- i += 1
- self._debug['items']['end'] = self._io.pos()
-
- if self.is_transfer_syntax_change_implicit:
- self._debug['elements_implicit']['start'] = self._io.pos()
- self.elements_implicit = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['elements_implicit']:
- self._debug['elements_implicit']['arr'] = []
- self._debug['elements_implicit']['arr'].append({'start': self._io.pos()})
- _t_elements_implicit = self._root.TDataElementImplicit(self._io, self, self._root)
- _t_elements_implicit._read()
- self.elements_implicit.append(_t_elements_implicit)
- self._debug['elements_implicit']['arr'][len(self.elements_implicit) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['elements_implicit']['end'] = self._io.pos()
-
-
- @property
- def is_forced_implicit(self):
- if hasattr(self, '_m_is_forced_implicit'):
- return self._m_is_forced_implicit if hasattr(self, '_m_is_forced_implicit') else None
-
- self._m_is_forced_implicit = self.tag_group == 65534
- return self._m_is_forced_implicit if hasattr(self, '_m_is_forced_implicit') else None
-
- @property
- def is_long_len(self):
- if hasattr(self, '_m_is_long_len'):
- return self._m_is_long_len if hasattr(self, '_m_is_long_len') else None
-
- self._m_is_long_len = ((self.is_forced_implicit) or (self.vr == u"OB") or (self.vr == u"OD") or (self.vr == u"OF") or (self.vr == u"OL") or (self.vr == u"OW") or (self.vr == u"SQ") or (self.vr == u"UC") or (self.vr == u"UR") or (self.vr == u"UT") or (self.vr == u"UN"))
- return self._m_is_long_len if hasattr(self, '_m_is_long_len') else None
-
- @property
- def is_transfer_syntax_change_implicit(self):
- if hasattr(self, '_m_is_transfer_syntax_change_implicit'):
- return self._m_is_transfer_syntax_change_implicit if hasattr(self, '_m_is_transfer_syntax_change_implicit') else None
-
- self._m_is_transfer_syntax_change_implicit = False
- return self._m_is_transfer_syntax_change_implicit if hasattr(self, '_m_is_transfer_syntax_change_implicit') else None
-
- @property
- def tag(self):
- if hasattr(self, '_m_tag'):
- return self._m_tag if hasattr(self, '_m_tag') else None
-
- self._m_tag = KaitaiStream.resolve_enum(self._root.Tags, ((self.tag_group << 16) | self.tag_elem))
- return self._m_tag if hasattr(self, '_m_tag') else None
-
-
- class TDataElementImplicit(KaitaiStruct):
- """
- .. seealso::
- Source - http://dicom.nema.org/medical/dicom/current/output/html/part05.html#sect_7.1.2
- """
- SEQ_FIELDS = ["tag_group", "tag_elem", "vr", "reserved", "value_len", "value", "items", "elements"]
- 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_group']['start'] = self._io.pos()
- self.tag_group = self._io.read_u2le()
- self._debug['tag_group']['end'] = self._io.pos()
- self._debug['tag_elem']['start'] = self._io.pos()
- self.tag_elem = self._io.read_u2le()
- self._debug['tag_elem']['end'] = self._io.pos()
- if self.is_forced_explicit:
- self._debug['vr']['start'] = self._io.pos()
- self.vr = (self._io.read_bytes(2)).decode(u"ASCII")
- self._debug['vr']['end'] = self._io.pos()
-
- if ((self.is_long_len) and (self.is_forced_explicit)) :
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.read_u2le()
- self._debug['reserved']['end'] = self._io.pos()
-
- self._debug['value_len']['start'] = self._io.pos()
- _on = (self.is_long_len if self.is_forced_explicit else True)
- if _on == False:
- self.value_len = self._io.read_u2le()
- elif _on == True:
- self.value_len = self._io.read_u4le()
- self._debug['value_len']['end'] = self._io.pos()
- if self.value_len != 4294967295:
- self._debug['value']['start'] = self._io.pos()
- self.value = self._io.read_bytes(self.value_len)
- self._debug['value']['end'] = self._io.pos()
-
- if ((self.vr == u"SQ") and (self.value_len == 4294967295)) :
- self._debug['items']['start'] = self._io.pos()
- self.items = []
- i = 0
- while True:
- if not 'arr' in self._debug['items']:
- self._debug['items']['arr'] = []
- self._debug['items']['arr'].append({'start': self._io.pos()})
- _t_items = self._root.SeqItem(self._io, self, self._root)
- _t_items._read()
- _ = _t_items
- self.items.append(_)
- self._debug['items']['arr'][len(self.items) - 1]['end'] = self._io.pos()
- if _.tag_elem == 57565:
- break
- i += 1
- self._debug['items']['end'] = self._io.pos()
-
- if self.is_transfer_syntax_change_explicit:
- self._debug['elements']['start'] = self._io.pos()
- self.elements = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['elements']:
- self._debug['elements']['arr'] = []
- self._debug['elements']['arr'].append({'start': self._io.pos()})
- _t_elements = self._root.TDataElementExplicit(self._io, self, self._root)
- _t_elements._read()
- self.elements.append(_t_elements)
- self._debug['elements']['arr'][len(self.elements) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['elements']['end'] = self._io.pos()
-
-
- @property
- def tag(self):
- if hasattr(self, '_m_tag'):
- return self._m_tag if hasattr(self, '_m_tag') else None
-
- self._m_tag = KaitaiStream.resolve_enum(self._root.Tags, ((self.tag_group << 16) | self.tag_elem))
- return self._m_tag if hasattr(self, '_m_tag') else None
-
- @property
- def is_transfer_syntax_change_explicit(self):
- if hasattr(self, '_m_is_transfer_syntax_change_explicit'):
- return self._m_is_transfer_syntax_change_explicit if hasattr(self, '_m_is_transfer_syntax_change_explicit') else None
-
- self._m_is_transfer_syntax_change_explicit = self.p_is_transfer_syntax_change_explicit
- return self._m_is_transfer_syntax_change_explicit if hasattr(self, '_m_is_transfer_syntax_change_explicit') else None
-
- @property
- def is_long_len(self):
- if hasattr(self, '_m_is_long_len'):
- return self._m_is_long_len if hasattr(self, '_m_is_long_len') else None
-
- self._m_is_long_len = ((self.is_forced_explicit) and ( ((self.vr == u"OB") or (self.vr == u"OD") or (self.vr == u"OF") or (self.vr == u"OL") or (self.vr == u"OW") or (self.vr == u"SQ") or (self.vr == u"UC") or (self.vr == u"UR") or (self.vr == u"UT") or (self.vr == u"UN")) ))
- return self._m_is_long_len if hasattr(self, '_m_is_long_len') else None
-
- @property
- def p_is_transfer_syntax_change_explicit(self):
- if hasattr(self, '_m_p_is_transfer_syntax_change_explicit'):
- return self._m_p_is_transfer_syntax_change_explicit if hasattr(self, '_m_p_is_transfer_syntax_change_explicit') else None
-
- self._m_p_is_transfer_syntax_change_explicit = self.value == b"\x31\x2E\x32\x2E\x38\x34\x30\x2E\x31\x30\x30\x30\x38\x2E\x31\x2E\x32\x2E\x31\x00"
- return self._m_p_is_transfer_syntax_change_explicit if hasattr(self, '_m_p_is_transfer_syntax_change_explicit') else None
-
- @property
- def is_forced_explicit(self):
- if hasattr(self, '_m_is_forced_explicit'):
- return self._m_is_forced_explicit if hasattr(self, '_m_is_forced_explicit') else None
-
- self._m_is_forced_explicit = self.tag_group == 2
- return self._m_is_forced_explicit if hasattr(self, '_m_is_forced_explicit') else None
-
-
- class SeqItem(KaitaiStruct):
- SEQ_FIELDS = ["tag_group", "tag_elem", "value_len", "value", "items"]
- 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_group']['start'] = self._io.pos()
- self.tag_group = self._io.ensure_fixed_contents(b"\xFE\xFF")
- self._debug['tag_group']['end'] = self._io.pos()
- self._debug['tag_elem']['start'] = self._io.pos()
- self.tag_elem = self._io.read_u2le()
- self._debug['tag_elem']['end'] = self._io.pos()
- self._debug['value_len']['start'] = self._io.pos()
- self.value_len = self._io.read_u4le()
- self._debug['value_len']['end'] = self._io.pos()
- if self.value_len != 4294967295:
- self._debug['value']['start'] = self._io.pos()
- self.value = self._io.read_bytes(self.value_len)
- self._debug['value']['end'] = self._io.pos()
-
- if self.value_len == 4294967295:
- self._debug['items']['start'] = self._io.pos()
- self.items = []
- i = 0
- while True:
- if not 'arr' in self._debug['items']:
- self._debug['items']['arr'] = []
- self._debug['items']['arr'].append({'start': self._io.pos()})
- _t_items = self._root.TDataElementExplicit(self._io, self, self._root)
- _t_items._read()
- _ = _t_items
- self.items.append(_)
- self._debug['items']['arr'][len(self.items) - 1]['end'] = self._io.pos()
- if ((_.tag_group == 65534) and (_.tag_elem == 57357)) :
- break
- i += 1
- self._debug['items']['end'] = self._io.pos()
-
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/exif.py b/python/examples/kaitai/kaitai_struct_formats/image/exif.py
deleted file mode 100644
index 5b7ae3b5..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/exif.py
+++ /dev/null
@@ -1,36 +0,0 @@
-from __future__ import absolute_import
-# 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
-
-
-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))
-
-from exif_le import ExifLe
-from exif_be import ExifBe
-class Exif(KaitaiStruct):
- SEQ_FIELDS = ["endianness", "body"]
- 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['endianness']['start'] = self._io.pos()
- self.endianness = self._io.read_u2le()
- self._debug['endianness']['end'] = self._io.pos()
- self._debug['body']['start'] = self._io.pos()
- _on = self.endianness
- if _on == 18761:
- self.body = ExifLe(self._io)
- self.body._read()
- elif _on == 19789:
- self.body = ExifBe(self._io)
- self.body._read()
- self._debug['body']['end'] = self._io.pos()
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/exif_be.py b/python/examples/kaitai/kaitai_struct_formats/image/exif_be.py
deleted file mode 100644
index df758573..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/exif_be.py
+++ /dev/null
@@ -1,621 +0,0 @@
-from __future__ import absolute_import
-# 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 ExifBe(KaitaiStruct):
- SEQ_FIELDS = ["version", "ifd0_ofs"]
- 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['version']['start'] = self._io.pos()
- self.version = self._io.read_u2be()
- self._debug['version']['end'] = self._io.pos()
- self._debug['ifd0_ofs']['start'] = self._io.pos()
- self.ifd0_ofs = self._io.read_u4be()
- self._debug['ifd0_ofs']['end'] = self._io.pos()
-
- class Ifd(KaitaiStruct):
- SEQ_FIELDS = ["num_fields", "fields", "next_ifd_ofs"]
- 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['num_fields']['start'] = self._io.pos()
- self.num_fields = self._io.read_u2be()
- self._debug['num_fields']['end'] = self._io.pos()
- self._debug['fields']['start'] = self._io.pos()
- self.fields = [None] * (self.num_fields)
- for i in range(self.num_fields):
- if not 'arr' in self._debug['fields']:
- self._debug['fields']['arr'] = []
- self._debug['fields']['arr'].append({'start': self._io.pos()})
- _t_fields = self._root.IfdField(self._io, self, self._root)
- _t_fields._read()
- self.fields[i] = _t_fields
- self._debug['fields']['arr'][i]['end'] = self._io.pos()
-
- self._debug['fields']['end'] = self._io.pos()
- self._debug['next_ifd_ofs']['start'] = self._io.pos()
- self.next_ifd_ofs = self._io.read_u4be()
- self._debug['next_ifd_ofs']['end'] = self._io.pos()
-
- @property
- def next_ifd(self):
- if hasattr(self, '_m_next_ifd'):
- return self._m_next_ifd if hasattr(self, '_m_next_ifd') else None
-
- if self.next_ifd_ofs != 0:
- _pos = self._io.pos()
- self._io.seek(self.next_ifd_ofs)
- self._debug['_m_next_ifd']['start'] = self._io.pos()
- self._m_next_ifd = self._root.Ifd(self._io, self, self._root)
- self._m_next_ifd._read()
- self._debug['_m_next_ifd']['end'] = self._io.pos()
- self._io.seek(_pos)
-
- return self._m_next_ifd if hasattr(self, '_m_next_ifd') else None
-
-
- class IfdField(KaitaiStruct):
-
- class FieldTypeEnum(Enum):
- byte = 1
- ascii_string = 2
- word = 3
- dword = 4
- rational = 5
- undefined = 7
- slong = 9
- srational = 10
-
- class TagEnum(Enum):
- image_width = 256
- image_height = 257
- bits_per_sample = 258
- compression = 259
- photometric_interpretation = 262
- thresholding = 263
- cell_width = 264
- cell_length = 265
- fill_order = 266
- document_name = 269
- image_description = 270
- make = 271
- model = 272
- strip_offsets = 273
- orientation = 274
- samples_per_pixel = 277
- rows_per_strip = 278
- strip_byte_counts = 279
- min_sample_value = 280
- max_sample_value = 281
- x_resolution = 282
- y_resolution = 283
- planar_configuration = 284
- page_name = 285
- x_position = 286
- y_position = 287
- free_offsets = 288
- free_byte_counts = 289
- gray_response_unit = 290
- gray_response_curve = 291
- t4_options = 292
- t6_options = 293
- resolution_unit = 296
- page_number = 297
- color_response_unit = 300
- transfer_function = 301
- software = 305
- modify_date = 306
- artist = 315
- host_computer = 316
- predictor = 317
- white_point = 318
- primary_chromaticities = 319
- color_map = 320
- halftone_hints = 321
- tile_width = 322
- tile_length = 323
- tile_offsets = 324
- tile_byte_counts = 325
- bad_fax_lines = 326
- clean_fax_data = 327
- consecutive_bad_fax_lines = 328
- sub_ifd = 330
- ink_set = 332
- ink_names = 333
- numberof_inks = 334
- dot_range = 336
- target_printer = 337
- extra_samples = 338
- sample_format = 339
- s_min_sample_value = 340
- s_max_sample_value = 341
- transfer_range = 342
- clip_path = 343
- x_clip_path_units = 344
- y_clip_path_units = 345
- indexed = 346
- jpeg_tables = 347
- opi_proxy = 351
- global_parameters_ifd = 400
- profile_type = 401
- fax_profile = 402
- coding_methods = 403
- version_year = 404
- mode_number = 405
- decode = 433
- default_image_color = 434
- t82_options = 435
- jpeg_tables2 = 437
- jpeg_proc = 512
- thumbnail_offset = 513
- thumbnail_length = 514
- jpeg_restart_interval = 515
- jpeg_lossless_predictors = 517
- jpeg_point_transforms = 518
- jpegq_tables = 519
- jpegdc_tables = 520
- jpegac_tables = 521
- y_cb_cr_coefficients = 529
- y_cb_cr_sub_sampling = 530
- y_cb_cr_positioning = 531
- reference_black_white = 532
- strip_row_counts = 559
- application_notes = 700
- uspto_miscellaneous = 999
- related_image_file_format = 4096
- related_image_width = 4097
- related_image_height = 4098
- rating = 18246
- xp_dip_xml = 18247
- stitch_info = 18248
- rating_percent = 18249
- sony_raw_file_type = 28672
- light_falloff_params = 28722
- chromatic_aberration_corr_params = 28725
- distortion_corr_params = 28727
- image_id = 32781
- wang_tag1 = 32931
- wang_annotation = 32932
- wang_tag3 = 32933
- wang_tag4 = 32934
- image_reference_points = 32953
- region_xform_tack_point = 32954
- warp_quadrilateral = 32955
- affine_transform_mat = 32956
- matteing = 32995
- data_type = 32996
- image_depth = 32997
- tile_depth = 32998
- image_full_width = 33300
- image_full_height = 33301
- texture_format = 33302
- wrap_modes = 33303
- fov_cot = 33304
- matrix_world_to_screen = 33305
- matrix_world_to_camera = 33306
- model2 = 33405
- cfa_repeat_pattern_dim = 33421
- cfa_pattern2 = 33422
- battery_level = 33423
- kodak_ifd = 33424
- copyright = 33432
- exposure_time = 33434
- f_number = 33437
- md_file_tag = 33445
- md_scale_pixel = 33446
- md_color_table = 33447
- md_lab_name = 33448
- md_sample_info = 33449
- md_prep_date = 33450
- md_prep_time = 33451
- md_file_units = 33452
- pixel_scale = 33550
- advent_scale = 33589
- advent_revision = 33590
- uic1_tag = 33628
- uic2_tag = 33629
- uic3_tag = 33630
- uic4_tag = 33631
- iptc_naa = 33723
- intergraph_packet_data = 33918
- intergraph_flag_registers = 33919
- intergraph_matrix = 33920
- ingr_reserved = 33921
- model_tie_point = 33922
- site = 34016
- color_sequence = 34017
- it8_header = 34018
- raster_padding = 34019
- bits_per_run_length = 34020
- bits_per_extended_run_length = 34021
- color_table = 34022
- image_color_indicator = 34023
- background_color_indicator = 34024
- image_color_value = 34025
- background_color_value = 34026
- pixel_intensity_range = 34027
- transparency_indicator = 34028
- color_characterization = 34029
- hc_usage = 34030
- trap_indicator = 34031
- cmyk_equivalent = 34032
- sem_info = 34118
- afcp_iptc = 34152
- pixel_magic_jbig_options = 34232
- jpl_carto_ifd = 34263
- model_transform = 34264
- wb_grgb_levels = 34306
- leaf_data = 34310
- photoshop_settings = 34377
- exif_offset = 34665
- icc_profile = 34675
- tiff_fx_extensions = 34687
- multi_profiles = 34688
- shared_data = 34689
- t88_options = 34690
- image_layer = 34732
- geo_tiff_directory = 34735
- geo_tiff_double_params = 34736
- geo_tiff_ascii_params = 34737
- jbig_options = 34750
- exposure_program = 34850
- spectral_sensitivity = 34852
- gps_info = 34853
- iso = 34855
- opto_electric_conv_factor = 34856
- interlace = 34857
- time_zone_offset = 34858
- self_timer_mode = 34859
- sensitivity_type = 34864
- standard_output_sensitivity = 34865
- recommended_exposure_index = 34866
- iso_speed = 34867
- iso_speed_latitudeyyy = 34868
- iso_speed_latitudezzz = 34869
- fax_recv_params = 34908
- fax_sub_address = 34909
- fax_recv_time = 34910
- fedex_edr = 34929
- leaf_sub_ifd = 34954
- exif_version = 36864
- date_time_original = 36867
- create_date = 36868
- google_plus_upload_code = 36873
- offset_time = 36880
- offset_time_original = 36881
- offset_time_digitized = 36882
- components_configuration = 37121
- compressed_bits_per_pixel = 37122
- shutter_speed_value = 37377
- aperture_value = 37378
- brightness_value = 37379
- exposure_compensation = 37380
- max_aperture_value = 37381
- subject_distance = 37382
- metering_mode = 37383
- light_source = 37384
- flash = 37385
- focal_length = 37386
- flash_energy = 37387
- spatial_frequency_response = 37388
- noise = 37389
- focal_plane_x_resolution = 37390
- focal_plane_y_resolution = 37391
- focal_plane_resolution_unit = 37392
- image_number = 37393
- security_classification = 37394
- image_history = 37395
- subject_area = 37396
- exposure_index = 37397
- tiff_ep_standard_id = 37398
- sensing_method = 37399
- cip3_data_file = 37434
- cip3_sheet = 37435
- cip3_side = 37436
- sto_nits = 37439
- maker_note = 37500
- user_comment = 37510
- sub_sec_time = 37520
- sub_sec_time_original = 37521
- sub_sec_time_digitized = 37522
- ms_document_text = 37679
- ms_property_set_storage = 37680
- ms_document_text_position = 37681
- image_source_data = 37724
- ambient_temperature = 37888
- humidity = 37889
- pressure = 37890
- water_depth = 37891
- acceleration = 37892
- camera_elevation_angle = 37893
- xp_title = 40091
- xp_comment = 40092
- xp_author = 40093
- xp_keywords = 40094
- xp_subject = 40095
- flashpix_version = 40960
- color_space = 40961
- exif_image_width = 40962
- exif_image_height = 40963
- related_sound_file = 40964
- interop_offset = 40965
- samsung_raw_pointers_offset = 40976
- samsung_raw_pointers_length = 40977
- samsung_raw_byte_order = 41217
- samsung_raw_unknown = 41218
- flash_energy2 = 41483
- spatial_frequency_response2 = 41484
- noise2 = 41485
- focal_plane_x_resolution2 = 41486
- focal_plane_y_resolution2 = 41487
- focal_plane_resolution_unit2 = 41488
- image_number2 = 41489
- security_classification2 = 41490
- image_history2 = 41491
- subject_location = 41492
- exposure_index2 = 41493
- tiff_ep_standard_id2 = 41494
- sensing_method2 = 41495
- file_source = 41728
- scene_type = 41729
- cfa_pattern = 41730
- custom_rendered = 41985
- exposure_mode = 41986
- white_balance = 41987
- digital_zoom_ratio = 41988
- focal_length_in35mm_format = 41989
- scene_capture_type = 41990
- gain_control = 41991
- contrast = 41992
- saturation = 41993
- sharpness = 41994
- device_setting_description = 41995
- subject_distance_range = 41996
- image_unique_id = 42016
- owner_name = 42032
- serial_number = 42033
- lens_info = 42034
- lens_make = 42035
- lens_model = 42036
- lens_serial_number = 42037
- gdal_metadata = 42112
- gdal_no_data = 42113
- gamma = 42240
- expand_software = 44992
- expand_lens = 44993
- expand_film = 44994
- expand_filter_lens = 44995
- expand_scanner = 44996
- expand_flash_lamp = 44997
- pixel_format = 48129
- transformation = 48130
- uncompressed = 48131
- image_type = 48132
- image_width2 = 48256
- image_height2 = 48257
- width_resolution = 48258
- height_resolution = 48259
- image_offset = 48320
- image_byte_count = 48321
- alpha_offset = 48322
- alpha_byte_count = 48323
- image_data_discard = 48324
- alpha_data_discard = 48325
- oce_scanjob_desc = 50215
- oce_application_selector = 50216
- oce_id_number = 50217
- oce_image_logic = 50218
- annotations = 50255
- print_im = 50341
- original_file_name = 50547
- uspto_original_content_type = 50560
- dng_version = 50706
- dng_backward_version = 50707
- unique_camera_model = 50708
- localized_camera_model = 50709
- cfa_plane_color = 50710
- cfa_layout = 50711
- linearization_table = 50712
- black_level_repeat_dim = 50713
- black_level = 50714
- black_level_delta_h = 50715
- black_level_delta_v = 50716
- white_level = 50717
- default_scale = 50718
- default_crop_origin = 50719
- default_crop_size = 50720
- color_matrix1 = 50721
- color_matrix2 = 50722
- camera_calibration1 = 50723
- camera_calibration2 = 50724
- reduction_matrix1 = 50725
- reduction_matrix2 = 50726
- analog_balance = 50727
- as_shot_neutral = 50728
- as_shot_white_xy = 50729
- baseline_exposure = 50730
- baseline_noise = 50731
- baseline_sharpness = 50732
- bayer_green_split = 50733
- linear_response_limit = 50734
- camera_serial_number = 50735
- dng_lens_info = 50736
- chroma_blur_radius = 50737
- anti_alias_strength = 50738
- shadow_scale = 50739
- sr2_private = 50740
- maker_note_safety = 50741
- raw_image_segmentation = 50752
- calibration_illuminant1 = 50778
- calibration_illuminant2 = 50779
- best_quality_scale = 50780
- raw_data_unique_id = 50781
- alias_layer_metadata = 50784
- original_raw_file_name = 50827
- original_raw_file_data = 50828
- active_area = 50829
- masked_areas = 50830
- as_shot_icc_profile = 50831
- as_shot_pre_profile_matrix = 50832
- current_icc_profile = 50833
- current_pre_profile_matrix = 50834
- colorimetric_reference = 50879
- s_raw_type = 50885
- panasonic_title = 50898
- panasonic_title2 = 50899
- camera_calibration_sig = 50931
- profile_calibration_sig = 50932
- profile_ifd = 50933
- as_shot_profile_name = 50934
- noise_reduction_applied = 50935
- profile_name = 50936
- profile_hue_sat_map_dims = 50937
- profile_hue_sat_map_data1 = 50938
- profile_hue_sat_map_data2 = 50939
- profile_tone_curve = 50940
- profile_embed_policy = 50941
- profile_copyright = 50942
- forward_matrix1 = 50964
- forward_matrix2 = 50965
- preview_application_name = 50966
- preview_application_version = 50967
- preview_settings_name = 50968
- preview_settings_digest = 50969
- preview_color_space = 50970
- preview_date_time = 50971
- raw_image_digest = 50972
- original_raw_file_digest = 50973
- sub_tile_block_size = 50974
- row_interleave_factor = 50975
- profile_look_table_dims = 50981
- profile_look_table_data = 50982
- opcode_list1 = 51008
- opcode_list2 = 51009
- opcode_list3 = 51022
- noise_profile = 51041
- time_codes = 51043
- frame_rate = 51044
- t_stop = 51058
- reel_name = 51081
- original_default_final_size = 51089
- original_best_quality_size = 51090
- original_default_crop_size = 51091
- camera_label = 51105
- profile_hue_sat_map_encoding = 51107
- profile_look_table_encoding = 51108
- baseline_exposure_offset = 51109
- default_black_render = 51110
- new_raw_image_digest = 51111
- raw_to_preview_gain = 51112
- default_user_crop = 51125
- padding = 59932
- offset_schema = 59933
- owner_name2 = 65000
- serial_number2 = 65001
- lens = 65002
- kdc_ifd = 65024
- raw_file = 65100
- converter = 65101
- white_balance2 = 65102
- exposure = 65105
- shadows = 65106
- brightness = 65107
- contrast2 = 65108
- saturation2 = 65109
- sharpness2 = 65110
- smoothness = 65111
- moire_filter = 65112
- SEQ_FIELDS = ["tag", "field_type", "length", "ofs_or_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']['start'] = self._io.pos()
- self.tag = KaitaiStream.resolve_enum(self._root.IfdField.TagEnum, self._io.read_u2be())
- self._debug['tag']['end'] = self._io.pos()
- self._debug['field_type']['start'] = self._io.pos()
- self.field_type = KaitaiStream.resolve_enum(self._root.IfdField.FieldTypeEnum, self._io.read_u2be())
- self._debug['field_type']['end'] = self._io.pos()
- self._debug['length']['start'] = self._io.pos()
- self.length = self._io.read_u4be()
- self._debug['length']['end'] = self._io.pos()
- self._debug['ofs_or_data']['start'] = self._io.pos()
- self.ofs_or_data = self._io.read_u4be()
- self._debug['ofs_or_data']['end'] = self._io.pos()
-
- @property
- def type_byte_length(self):
- if hasattr(self, '_m_type_byte_length'):
- return self._m_type_byte_length if hasattr(self, '_m_type_byte_length') else None
-
- self._m_type_byte_length = (2 if self.field_type == self._root.IfdField.FieldTypeEnum.word else (4 if self.field_type == self._root.IfdField.FieldTypeEnum.dword else 1))
- return self._m_type_byte_length if hasattr(self, '_m_type_byte_length') else None
-
- @property
- def byte_length(self):
- if hasattr(self, '_m_byte_length'):
- return self._m_byte_length if hasattr(self, '_m_byte_length') else None
-
- self._m_byte_length = (self.length * self.type_byte_length)
- return self._m_byte_length if hasattr(self, '_m_byte_length') else None
-
- @property
- def is_immediate_data(self):
- if hasattr(self, '_m_is_immediate_data'):
- return self._m_is_immediate_data if hasattr(self, '_m_is_immediate_data') else None
-
- self._m_is_immediate_data = self.byte_length <= 4
- return self._m_is_immediate_data if hasattr(self, '_m_is_immediate_data') else None
-
- @property
- def data(self):
- if hasattr(self, '_m_data'):
- return self._m_data if hasattr(self, '_m_data') else None
-
- if not (self.is_immediate_data):
- io = self._root._io
- _pos = io.pos()
- io.seek(self.ofs_or_data)
- self._debug['_m_data']['start'] = io.pos()
- self._m_data = io.read_bytes(self.byte_length)
- self._debug['_m_data']['end'] = io.pos()
- io.seek(_pos)
-
- return self._m_data if hasattr(self, '_m_data') else None
-
-
- @property
- def ifd0(self):
- if hasattr(self, '_m_ifd0'):
- return self._m_ifd0 if hasattr(self, '_m_ifd0') else None
-
- _pos = self._io.pos()
- self._io.seek(self.ifd0_ofs)
- self._debug['_m_ifd0']['start'] = self._io.pos()
- self._m_ifd0 = self._root.Ifd(self._io, self, self._root)
- self._m_ifd0._read()
- self._debug['_m_ifd0']['end'] = self._io.pos()
- self._io.seek(_pos)
- return self._m_ifd0 if hasattr(self, '_m_ifd0') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/exif_le.py b/python/examples/kaitai/kaitai_struct_formats/image/exif_le.py
deleted file mode 100644
index 94f4155a..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/exif_le.py
+++ /dev/null
@@ -1,621 +0,0 @@
-from __future__ import absolute_import
-# 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 ExifLe(KaitaiStruct):
- SEQ_FIELDS = ["version", "ifd0_ofs"]
- 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['version']['start'] = self._io.pos()
- self.version = self._io.read_u2le()
- self._debug['version']['end'] = self._io.pos()
- self._debug['ifd0_ofs']['start'] = self._io.pos()
- self.ifd0_ofs = self._io.read_u4le()
- self._debug['ifd0_ofs']['end'] = self._io.pos()
-
- class Ifd(KaitaiStruct):
- SEQ_FIELDS = ["num_fields", "fields", "next_ifd_ofs"]
- 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['num_fields']['start'] = self._io.pos()
- self.num_fields = self._io.read_u2le()
- self._debug['num_fields']['end'] = self._io.pos()
- self._debug['fields']['start'] = self._io.pos()
- self.fields = [None] * (self.num_fields)
- for i in range(self.num_fields):
- if not 'arr' in self._debug['fields']:
- self._debug['fields']['arr'] = []
- self._debug['fields']['arr'].append({'start': self._io.pos()})
- _t_fields = self._root.IfdField(self._io, self, self._root)
- _t_fields._read()
- self.fields[i] = _t_fields
- self._debug['fields']['arr'][i]['end'] = self._io.pos()
-
- self._debug['fields']['end'] = self._io.pos()
- self._debug['next_ifd_ofs']['start'] = self._io.pos()
- self.next_ifd_ofs = self._io.read_u4le()
- self._debug['next_ifd_ofs']['end'] = self._io.pos()
-
- @property
- def next_ifd(self):
- if hasattr(self, '_m_next_ifd'):
- return self._m_next_ifd if hasattr(self, '_m_next_ifd') else None
-
- if self.next_ifd_ofs != 0:
- _pos = self._io.pos()
- self._io.seek(self.next_ifd_ofs)
- self._debug['_m_next_ifd']['start'] = self._io.pos()
- self._m_next_ifd = self._root.Ifd(self._io, self, self._root)
- self._m_next_ifd._read()
- self._debug['_m_next_ifd']['end'] = self._io.pos()
- self._io.seek(_pos)
-
- return self._m_next_ifd if hasattr(self, '_m_next_ifd') else None
-
-
- class IfdField(KaitaiStruct):
-
- class FieldTypeEnum(Enum):
- byte = 1
- ascii_string = 2
- word = 3
- dword = 4
- rational = 5
- undefined = 7
- slong = 9
- srational = 10
-
- class TagEnum(Enum):
- image_width = 256
- image_height = 257
- bits_per_sample = 258
- compression = 259
- photometric_interpretation = 262
- thresholding = 263
- cell_width = 264
- cell_length = 265
- fill_order = 266
- document_name = 269
- image_description = 270
- make = 271
- model = 272
- strip_offsets = 273
- orientation = 274
- samples_per_pixel = 277
- rows_per_strip = 278
- strip_byte_counts = 279
- min_sample_value = 280
- max_sample_value = 281
- x_resolution = 282
- y_resolution = 283
- planar_configuration = 284
- page_name = 285
- x_position = 286
- y_position = 287
- free_offsets = 288
- free_byte_counts = 289
- gray_response_unit = 290
- gray_response_curve = 291
- t4_options = 292
- t6_options = 293
- resolution_unit = 296
- page_number = 297
- color_response_unit = 300
- transfer_function = 301
- software = 305
- modify_date = 306
- artist = 315
- host_computer = 316
- predictor = 317
- white_point = 318
- primary_chromaticities = 319
- color_map = 320
- halftone_hints = 321
- tile_width = 322
- tile_length = 323
- tile_offsets = 324
- tile_byte_counts = 325
- bad_fax_lines = 326
- clean_fax_data = 327
- consecutive_bad_fax_lines = 328
- sub_ifd = 330
- ink_set = 332
- ink_names = 333
- numberof_inks = 334
- dot_range = 336
- target_printer = 337
- extra_samples = 338
- sample_format = 339
- s_min_sample_value = 340
- s_max_sample_value = 341
- transfer_range = 342
- clip_path = 343
- x_clip_path_units = 344
- y_clip_path_units = 345
- indexed = 346
- jpeg_tables = 347
- opi_proxy = 351
- global_parameters_ifd = 400
- profile_type = 401
- fax_profile = 402
- coding_methods = 403
- version_year = 404
- mode_number = 405
- decode = 433
- default_image_color = 434
- t82_options = 435
- jpeg_tables2 = 437
- jpeg_proc = 512
- thumbnail_offset = 513
- thumbnail_length = 514
- jpeg_restart_interval = 515
- jpeg_lossless_predictors = 517
- jpeg_point_transforms = 518
- jpegq_tables = 519
- jpegdc_tables = 520
- jpegac_tables = 521
- y_cb_cr_coefficients = 529
- y_cb_cr_sub_sampling = 530
- y_cb_cr_positioning = 531
- reference_black_white = 532
- strip_row_counts = 559
- application_notes = 700
- uspto_miscellaneous = 999
- related_image_file_format = 4096
- related_image_width = 4097
- related_image_height = 4098
- rating = 18246
- xp_dip_xml = 18247
- stitch_info = 18248
- rating_percent = 18249
- sony_raw_file_type = 28672
- light_falloff_params = 28722
- chromatic_aberration_corr_params = 28725
- distortion_corr_params = 28727
- image_id = 32781
- wang_tag1 = 32931
- wang_annotation = 32932
- wang_tag3 = 32933
- wang_tag4 = 32934
- image_reference_points = 32953
- region_xform_tack_point = 32954
- warp_quadrilateral = 32955
- affine_transform_mat = 32956
- matteing = 32995
- data_type = 32996
- image_depth = 32997
- tile_depth = 32998
- image_full_width = 33300
- image_full_height = 33301
- texture_format = 33302
- wrap_modes = 33303
- fov_cot = 33304
- matrix_world_to_screen = 33305
- matrix_world_to_camera = 33306
- model2 = 33405
- cfa_repeat_pattern_dim = 33421
- cfa_pattern2 = 33422
- battery_level = 33423
- kodak_ifd = 33424
- copyright = 33432
- exposure_time = 33434
- f_number = 33437
- md_file_tag = 33445
- md_scale_pixel = 33446
- md_color_table = 33447
- md_lab_name = 33448
- md_sample_info = 33449
- md_prep_date = 33450
- md_prep_time = 33451
- md_file_units = 33452
- pixel_scale = 33550
- advent_scale = 33589
- advent_revision = 33590
- uic1_tag = 33628
- uic2_tag = 33629
- uic3_tag = 33630
- uic4_tag = 33631
- iptc_naa = 33723
- intergraph_packet_data = 33918
- intergraph_flag_registers = 33919
- intergraph_matrix = 33920
- ingr_reserved = 33921
- model_tie_point = 33922
- site = 34016
- color_sequence = 34017
- it8_header = 34018
- raster_padding = 34019
- bits_per_run_length = 34020
- bits_per_extended_run_length = 34021
- color_table = 34022
- image_color_indicator = 34023
- background_color_indicator = 34024
- image_color_value = 34025
- background_color_value = 34026
- pixel_intensity_range = 34027
- transparency_indicator = 34028
- color_characterization = 34029
- hc_usage = 34030
- trap_indicator = 34031
- cmyk_equivalent = 34032
- sem_info = 34118
- afcp_iptc = 34152
- pixel_magic_jbig_options = 34232
- jpl_carto_ifd = 34263
- model_transform = 34264
- wb_grgb_levels = 34306
- leaf_data = 34310
- photoshop_settings = 34377
- exif_offset = 34665
- icc_profile = 34675
- tiff_fx_extensions = 34687
- multi_profiles = 34688
- shared_data = 34689
- t88_options = 34690
- image_layer = 34732
- geo_tiff_directory = 34735
- geo_tiff_double_params = 34736
- geo_tiff_ascii_params = 34737
- jbig_options = 34750
- exposure_program = 34850
- spectral_sensitivity = 34852
- gps_info = 34853
- iso = 34855
- opto_electric_conv_factor = 34856
- interlace = 34857
- time_zone_offset = 34858
- self_timer_mode = 34859
- sensitivity_type = 34864
- standard_output_sensitivity = 34865
- recommended_exposure_index = 34866
- iso_speed = 34867
- iso_speed_latitudeyyy = 34868
- iso_speed_latitudezzz = 34869
- fax_recv_params = 34908
- fax_sub_address = 34909
- fax_recv_time = 34910
- fedex_edr = 34929
- leaf_sub_ifd = 34954
- exif_version = 36864
- date_time_original = 36867
- create_date = 36868
- google_plus_upload_code = 36873
- offset_time = 36880
- offset_time_original = 36881
- offset_time_digitized = 36882
- components_configuration = 37121
- compressed_bits_per_pixel = 37122
- shutter_speed_value = 37377
- aperture_value = 37378
- brightness_value = 37379
- exposure_compensation = 37380
- max_aperture_value = 37381
- subject_distance = 37382
- metering_mode = 37383
- light_source = 37384
- flash = 37385
- focal_length = 37386
- flash_energy = 37387
- spatial_frequency_response = 37388
- noise = 37389
- focal_plane_x_resolution = 37390
- focal_plane_y_resolution = 37391
- focal_plane_resolution_unit = 37392
- image_number = 37393
- security_classification = 37394
- image_history = 37395
- subject_area = 37396
- exposure_index = 37397
- tiff_ep_standard_id = 37398
- sensing_method = 37399
- cip3_data_file = 37434
- cip3_sheet = 37435
- cip3_side = 37436
- sto_nits = 37439
- maker_note = 37500
- user_comment = 37510
- sub_sec_time = 37520
- sub_sec_time_original = 37521
- sub_sec_time_digitized = 37522
- ms_document_text = 37679
- ms_property_set_storage = 37680
- ms_document_text_position = 37681
- image_source_data = 37724
- ambient_temperature = 37888
- humidity = 37889
- pressure = 37890
- water_depth = 37891
- acceleration = 37892
- camera_elevation_angle = 37893
- xp_title = 40091
- xp_comment = 40092
- xp_author = 40093
- xp_keywords = 40094
- xp_subject = 40095
- flashpix_version = 40960
- color_space = 40961
- exif_image_width = 40962
- exif_image_height = 40963
- related_sound_file = 40964
- interop_offset = 40965
- samsung_raw_pointers_offset = 40976
- samsung_raw_pointers_length = 40977
- samsung_raw_byte_order = 41217
- samsung_raw_unknown = 41218
- flash_energy2 = 41483
- spatial_frequency_response2 = 41484
- noise2 = 41485
- focal_plane_x_resolution2 = 41486
- focal_plane_y_resolution2 = 41487
- focal_plane_resolution_unit2 = 41488
- image_number2 = 41489
- security_classification2 = 41490
- image_history2 = 41491
- subject_location = 41492
- exposure_index2 = 41493
- tiff_ep_standard_id2 = 41494
- sensing_method2 = 41495
- file_source = 41728
- scene_type = 41729
- cfa_pattern = 41730
- custom_rendered = 41985
- exposure_mode = 41986
- white_balance = 41987
- digital_zoom_ratio = 41988
- focal_length_in35mm_format = 41989
- scene_capture_type = 41990
- gain_control = 41991
- contrast = 41992
- saturation = 41993
- sharpness = 41994
- device_setting_description = 41995
- subject_distance_range = 41996
- image_unique_id = 42016
- owner_name = 42032
- serial_number = 42033
- lens_info = 42034
- lens_make = 42035
- lens_model = 42036
- lens_serial_number = 42037
- gdal_metadata = 42112
- gdal_no_data = 42113
- gamma = 42240
- expand_software = 44992
- expand_lens = 44993
- expand_film = 44994
- expand_filter_lens = 44995
- expand_scanner = 44996
- expand_flash_lamp = 44997
- pixel_format = 48129
- transformation = 48130
- uncompressed = 48131
- image_type = 48132
- image_width2 = 48256
- image_height2 = 48257
- width_resolution = 48258
- height_resolution = 48259
- image_offset = 48320
- image_byte_count = 48321
- alpha_offset = 48322
- alpha_byte_count = 48323
- image_data_discard = 48324
- alpha_data_discard = 48325
- oce_scanjob_desc = 50215
- oce_application_selector = 50216
- oce_id_number = 50217
- oce_image_logic = 50218
- annotations = 50255
- print_im = 50341
- original_file_name = 50547
- uspto_original_content_type = 50560
- dng_version = 50706
- dng_backward_version = 50707
- unique_camera_model = 50708
- localized_camera_model = 50709
- cfa_plane_color = 50710
- cfa_layout = 50711
- linearization_table = 50712
- black_level_repeat_dim = 50713
- black_level = 50714
- black_level_delta_h = 50715
- black_level_delta_v = 50716
- white_level = 50717
- default_scale = 50718
- default_crop_origin = 50719
- default_crop_size = 50720
- color_matrix1 = 50721
- color_matrix2 = 50722
- camera_calibration1 = 50723
- camera_calibration2 = 50724
- reduction_matrix1 = 50725
- reduction_matrix2 = 50726
- analog_balance = 50727
- as_shot_neutral = 50728
- as_shot_white_xy = 50729
- baseline_exposure = 50730
- baseline_noise = 50731
- baseline_sharpness = 50732
- bayer_green_split = 50733
- linear_response_limit = 50734
- camera_serial_number = 50735
- dng_lens_info = 50736
- chroma_blur_radius = 50737
- anti_alias_strength = 50738
- shadow_scale = 50739
- sr2_private = 50740
- maker_note_safety = 50741
- raw_image_segmentation = 50752
- calibration_illuminant1 = 50778
- calibration_illuminant2 = 50779
- best_quality_scale = 50780
- raw_data_unique_id = 50781
- alias_layer_metadata = 50784
- original_raw_file_name = 50827
- original_raw_file_data = 50828
- active_area = 50829
- masked_areas = 50830
- as_shot_icc_profile = 50831
- as_shot_pre_profile_matrix = 50832
- current_icc_profile = 50833
- current_pre_profile_matrix = 50834
- colorimetric_reference = 50879
- s_raw_type = 50885
- panasonic_title = 50898
- panasonic_title2 = 50899
- camera_calibration_sig = 50931
- profile_calibration_sig = 50932
- profile_ifd = 50933
- as_shot_profile_name = 50934
- noise_reduction_applied = 50935
- profile_name = 50936
- profile_hue_sat_map_dims = 50937
- profile_hue_sat_map_data1 = 50938
- profile_hue_sat_map_data2 = 50939
- profile_tone_curve = 50940
- profile_embed_policy = 50941
- profile_copyright = 50942
- forward_matrix1 = 50964
- forward_matrix2 = 50965
- preview_application_name = 50966
- preview_application_version = 50967
- preview_settings_name = 50968
- preview_settings_digest = 50969
- preview_color_space = 50970
- preview_date_time = 50971
- raw_image_digest = 50972
- original_raw_file_digest = 50973
- sub_tile_block_size = 50974
- row_interleave_factor = 50975
- profile_look_table_dims = 50981
- profile_look_table_data = 50982
- opcode_list1 = 51008
- opcode_list2 = 51009
- opcode_list3 = 51022
- noise_profile = 51041
- time_codes = 51043
- frame_rate = 51044
- t_stop = 51058
- reel_name = 51081
- original_default_final_size = 51089
- original_best_quality_size = 51090
- original_default_crop_size = 51091
- camera_label = 51105
- profile_hue_sat_map_encoding = 51107
- profile_look_table_encoding = 51108
- baseline_exposure_offset = 51109
- default_black_render = 51110
- new_raw_image_digest = 51111
- raw_to_preview_gain = 51112
- default_user_crop = 51125
- padding = 59932
- offset_schema = 59933
- owner_name2 = 65000
- serial_number2 = 65001
- lens = 65002
- kdc_ifd = 65024
- raw_file = 65100
- converter = 65101
- white_balance2 = 65102
- exposure = 65105
- shadows = 65106
- brightness = 65107
- contrast2 = 65108
- saturation2 = 65109
- sharpness2 = 65110
- smoothness = 65111
- moire_filter = 65112
- SEQ_FIELDS = ["tag", "field_type", "length", "ofs_or_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']['start'] = self._io.pos()
- self.tag = KaitaiStream.resolve_enum(self._root.IfdField.TagEnum, self._io.read_u2le())
- self._debug['tag']['end'] = self._io.pos()
- self._debug['field_type']['start'] = self._io.pos()
- self.field_type = KaitaiStream.resolve_enum(self._root.IfdField.FieldTypeEnum, self._io.read_u2le())
- self._debug['field_type']['end'] = self._io.pos()
- self._debug['length']['start'] = self._io.pos()
- self.length = self._io.read_u4le()
- self._debug['length']['end'] = self._io.pos()
- self._debug['ofs_or_data']['start'] = self._io.pos()
- self.ofs_or_data = self._io.read_u4le()
- self._debug['ofs_or_data']['end'] = self._io.pos()
-
- @property
- def type_byte_length(self):
- if hasattr(self, '_m_type_byte_length'):
- return self._m_type_byte_length if hasattr(self, '_m_type_byte_length') else None
-
- self._m_type_byte_length = (2 if self.field_type == self._root.IfdField.FieldTypeEnum.word else (4 if self.field_type == self._root.IfdField.FieldTypeEnum.dword else 1))
- return self._m_type_byte_length if hasattr(self, '_m_type_byte_length') else None
-
- @property
- def byte_length(self):
- if hasattr(self, '_m_byte_length'):
- return self._m_byte_length if hasattr(self, '_m_byte_length') else None
-
- self._m_byte_length = (self.length * self.type_byte_length)
- return self._m_byte_length if hasattr(self, '_m_byte_length') else None
-
- @property
- def is_immediate_data(self):
- if hasattr(self, '_m_is_immediate_data'):
- return self._m_is_immediate_data if hasattr(self, '_m_is_immediate_data') else None
-
- self._m_is_immediate_data = self.byte_length <= 4
- return self._m_is_immediate_data if hasattr(self, '_m_is_immediate_data') else None
-
- @property
- def data(self):
- if hasattr(self, '_m_data'):
- return self._m_data if hasattr(self, '_m_data') else None
-
- if not (self.is_immediate_data):
- io = self._root._io
- _pos = io.pos()
- io.seek(self.ofs_or_data)
- self._debug['_m_data']['start'] = io.pos()
- self._m_data = io.read_bytes(self.byte_length)
- self._debug['_m_data']['end'] = io.pos()
- io.seek(_pos)
-
- return self._m_data if hasattr(self, '_m_data') else None
-
-
- @property
- def ifd0(self):
- if hasattr(self, '_m_ifd0'):
- return self._m_ifd0 if hasattr(self, '_m_ifd0') else None
-
- _pos = self._io.pos()
- self._io.seek(self.ifd0_ofs)
- self._debug['_m_ifd0']['start'] = self._io.pos()
- self._m_ifd0 = self._root.Ifd(self._io, self, self._root)
- self._m_ifd0._read()
- self._debug['_m_ifd0']['end'] = self._io.pos()
- self._io.seek(_pos)
- return self._m_ifd0 if hasattr(self, '_m_ifd0') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/gif.py b/python/examples/kaitai/kaitai_struct_formats/image/gif.py
deleted file mode 100644
index 95586ed2..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/gif.py
+++ /dev/null
@@ -1,464 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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 Gif(KaitaiStruct):
- """GIF (Graphics Interchange Format) is an image file format, developed
- in 1987. It became popular in 1990s as one of the main image formats
- used in World Wide Web.
-
- GIF format allows encoding of palette-based images up to 256 colors
- (each of the colors can be chosen from a 24-bit RGB
- colorspace). Image data stream uses LZW (Lempel–Ziv–Welch) lossless
- compression.
-
- Over the years, several version of the format were published and
- several extensions to it were made, namely, a popular Netscape
- extension that allows to store several images in one file, switching
- between them, which produces crude form of animation.
-
- Structurally, format consists of several mandatory headers and then
- a stream of blocks follows. Blocks can carry additional
- metainformation or image data.
- """
-
- class BlockType(Enum):
- extension = 33
- local_image_descriptor = 44
- end_of_file = 59
-
- class ExtensionLabel(Enum):
- graphic_control = 249
- comment = 254
- application = 255
- SEQ_FIELDS = ["hdr", "logical_screen_descriptor", "global_color_table", "blocks"]
- 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['hdr']['start'] = self._io.pos()
- self.hdr = self._root.Header(self._io, self, self._root)
- self.hdr._read()
- self._debug['hdr']['end'] = self._io.pos()
- self._debug['logical_screen_descriptor']['start'] = self._io.pos()
- self.logical_screen_descriptor = self._root.LogicalScreenDescriptorStruct(self._io, self, self._root)
- self.logical_screen_descriptor._read()
- self._debug['logical_screen_descriptor']['end'] = self._io.pos()
- if self.logical_screen_descriptor.has_color_table:
- self._debug['global_color_table']['start'] = self._io.pos()
- self._raw_global_color_table = self._io.read_bytes((self.logical_screen_descriptor.color_table_size * 3))
- io = KaitaiStream(BytesIO(self._raw_global_color_table))
- self.global_color_table = self._root.ColorTable(io, self, self._root)
- self.global_color_table._read()
- self._debug['global_color_table']['end'] = self._io.pos()
-
- self._debug['blocks']['start'] = self._io.pos()
- self.blocks = []
- i = 0
- while True:
- if not 'arr' in self._debug['blocks']:
- self._debug['blocks']['arr'] = []
- self._debug['blocks']['arr'].append({'start': self._io.pos()})
- _t_blocks = self._root.Block(self._io, self, self._root)
- _t_blocks._read()
- _ = _t_blocks
- self.blocks.append(_)
- self._debug['blocks']['arr'][len(self.blocks) - 1]['end'] = self._io.pos()
- if ((self._io.is_eof()) or (_.block_type == self._root.BlockType.end_of_file)) :
- break
- i += 1
- self._debug['blocks']['end'] = self._io.pos()
-
- class ImageData(KaitaiStruct):
- """
- .. seealso::
- - section 22 - https://www.w3.org/Graphics/GIF/spec-gif89a.txt
- """
- SEQ_FIELDS = ["lzw_min_code_size", "subblocks"]
- 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['lzw_min_code_size']['start'] = self._io.pos()
- self.lzw_min_code_size = self._io.read_u1()
- self._debug['lzw_min_code_size']['end'] = self._io.pos()
- self._debug['subblocks']['start'] = self._io.pos()
- self.subblocks = self._root.Subblocks(self._io, self, self._root)
- self.subblocks._read()
- self._debug['subblocks']['end'] = self._io.pos()
-
-
- class ColorTableEntry(KaitaiStruct):
- SEQ_FIELDS = ["red", "green", "blue"]
- 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['red']['start'] = self._io.pos()
- self.red = self._io.read_u1()
- self._debug['red']['end'] = self._io.pos()
- self._debug['green']['start'] = self._io.pos()
- self.green = self._io.read_u1()
- self._debug['green']['end'] = self._io.pos()
- self._debug['blue']['start'] = self._io.pos()
- self.blue = self._io.read_u1()
- self._debug['blue']['end'] = self._io.pos()
-
-
- class LogicalScreenDescriptorStruct(KaitaiStruct):
- """
- .. seealso::
- - section 18 - https://www.w3.org/Graphics/GIF/spec-gif89a.txt
- """
- SEQ_FIELDS = ["screen_width", "screen_height", "flags", "bg_color_index", "pixel_aspect_ratio"]
- 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['screen_width']['start'] = self._io.pos()
- self.screen_width = self._io.read_u2le()
- self._debug['screen_width']['end'] = self._io.pos()
- self._debug['screen_height']['start'] = self._io.pos()
- self.screen_height = self._io.read_u2le()
- self._debug['screen_height']['end'] = self._io.pos()
- self._debug['flags']['start'] = self._io.pos()
- self.flags = self._io.read_u1()
- self._debug['flags']['end'] = self._io.pos()
- self._debug['bg_color_index']['start'] = self._io.pos()
- self.bg_color_index = self._io.read_u1()
- self._debug['bg_color_index']['end'] = self._io.pos()
- self._debug['pixel_aspect_ratio']['start'] = self._io.pos()
- self.pixel_aspect_ratio = self._io.read_u1()
- self._debug['pixel_aspect_ratio']['end'] = self._io.pos()
-
- @property
- def has_color_table(self):
- if hasattr(self, '_m_has_color_table'):
- return self._m_has_color_table if hasattr(self, '_m_has_color_table') else None
-
- self._m_has_color_table = (self.flags & 128) != 0
- return self._m_has_color_table if hasattr(self, '_m_has_color_table') else None
-
- @property
- def color_table_size(self):
- if hasattr(self, '_m_color_table_size'):
- return self._m_color_table_size if hasattr(self, '_m_color_table_size') else None
-
- self._m_color_table_size = (2 << (self.flags & 7))
- return self._m_color_table_size if hasattr(self, '_m_color_table_size') else None
-
-
- class LocalImageDescriptor(KaitaiStruct):
- SEQ_FIELDS = ["left", "top", "width", "height", "flags", "local_color_table", "image_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['left']['start'] = self._io.pos()
- self.left = self._io.read_u2le()
- self._debug['left']['end'] = self._io.pos()
- self._debug['top']['start'] = self._io.pos()
- self.top = self._io.read_u2le()
- self._debug['top']['end'] = self._io.pos()
- self._debug['width']['start'] = self._io.pos()
- self.width = self._io.read_u2le()
- self._debug['width']['end'] = self._io.pos()
- self._debug['height']['start'] = self._io.pos()
- self.height = self._io.read_u2le()
- self._debug['height']['end'] = self._io.pos()
- self._debug['flags']['start'] = self._io.pos()
- self.flags = self._io.read_u1()
- self._debug['flags']['end'] = self._io.pos()
- if self.has_color_table:
- self._debug['local_color_table']['start'] = self._io.pos()
- self._raw_local_color_table = self._io.read_bytes((self.color_table_size * 3))
- io = KaitaiStream(BytesIO(self._raw_local_color_table))
- self.local_color_table = self._root.ColorTable(io, self, self._root)
- self.local_color_table._read()
- self._debug['local_color_table']['end'] = self._io.pos()
-
- self._debug['image_data']['start'] = self._io.pos()
- self.image_data = self._root.ImageData(self._io, self, self._root)
- self.image_data._read()
- self._debug['image_data']['end'] = self._io.pos()
-
- @property
- def has_color_table(self):
- if hasattr(self, '_m_has_color_table'):
- return self._m_has_color_table if hasattr(self, '_m_has_color_table') else None
-
- self._m_has_color_table = (self.flags & 128) != 0
- return self._m_has_color_table if hasattr(self, '_m_has_color_table') else None
-
- @property
- def has_interlace(self):
- if hasattr(self, '_m_has_interlace'):
- return self._m_has_interlace if hasattr(self, '_m_has_interlace') else None
-
- self._m_has_interlace = (self.flags & 64) != 0
- return self._m_has_interlace if hasattr(self, '_m_has_interlace') else None
-
- @property
- def has_sorted_color_table(self):
- if hasattr(self, '_m_has_sorted_color_table'):
- return self._m_has_sorted_color_table if hasattr(self, '_m_has_sorted_color_table') else None
-
- self._m_has_sorted_color_table = (self.flags & 32) != 0
- return self._m_has_sorted_color_table if hasattr(self, '_m_has_sorted_color_table') else None
-
- @property
- def color_table_size(self):
- if hasattr(self, '_m_color_table_size'):
- return self._m_color_table_size if hasattr(self, '_m_color_table_size') else None
-
- self._m_color_table_size = (2 << (self.flags & 7))
- return self._m_color_table_size if hasattr(self, '_m_color_table_size') else None
-
-
- class Block(KaitaiStruct):
- SEQ_FIELDS = ["block_type", "body"]
- 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['block_type']['start'] = self._io.pos()
- self.block_type = KaitaiStream.resolve_enum(self._root.BlockType, self._io.read_u1())
- self._debug['block_type']['end'] = self._io.pos()
- self._debug['body']['start'] = self._io.pos()
- _on = self.block_type
- if _on == self._root.BlockType.extension:
- self.body = self._root.Extension(self._io, self, self._root)
- self.body._read()
- elif _on == self._root.BlockType.local_image_descriptor:
- self.body = self._root.LocalImageDescriptor(self._io, self, self._root)
- self.body._read()
- self._debug['body']['end'] = self._io.pos()
-
-
- class ColorTable(KaitaiStruct):
- """
- .. seealso::
- - section 19 - https://www.w3.org/Graphics/GIF/spec-gif89a.txt
- """
- SEQ_FIELDS = ["entries"]
- 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['entries']['start'] = self._io.pos()
- self.entries = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['entries']:
- self._debug['entries']['arr'] = []
- self._debug['entries']['arr'].append({'start': self._io.pos()})
- _t_entries = self._root.ColorTableEntry(self._io, self, self._root)
- _t_entries._read()
- self.entries.append(_t_entries)
- self._debug['entries']['arr'][len(self.entries) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['entries']['end'] = self._io.pos()
-
-
- class Header(KaitaiStruct):
- """
- .. seealso::
- - section 17 - https://www.w3.org/Graphics/GIF/spec-gif89a.txt
- """
- SEQ_FIELDS = ["magic", "version"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x47\x49\x46")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['version']['start'] = self._io.pos()
- self.version = (self._io.read_bytes(3)).decode(u"ASCII")
- self._debug['version']['end'] = self._io.pos()
-
-
- class ExtGraphicControl(KaitaiStruct):
- """
- .. seealso::
- - section 23 - https://www.w3.org/Graphics/GIF/spec-gif89a.txt
- """
- SEQ_FIELDS = ["block_size", "flags", "delay_time", "transparent_idx", "terminator"]
- 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['block_size']['start'] = self._io.pos()
- self.block_size = self._io.ensure_fixed_contents(b"\x04")
- self._debug['block_size']['end'] = self._io.pos()
- self._debug['flags']['start'] = self._io.pos()
- self.flags = self._io.read_u1()
- self._debug['flags']['end'] = self._io.pos()
- self._debug['delay_time']['start'] = self._io.pos()
- self.delay_time = self._io.read_u2le()
- self._debug['delay_time']['end'] = self._io.pos()
- self._debug['transparent_idx']['start'] = self._io.pos()
- self.transparent_idx = self._io.read_u1()
- self._debug['transparent_idx']['end'] = self._io.pos()
- self._debug['terminator']['start'] = self._io.pos()
- self.terminator = self._io.ensure_fixed_contents(b"\x00")
- self._debug['terminator']['end'] = self._io.pos()
-
- @property
- def transparent_color_flag(self):
- if hasattr(self, '_m_transparent_color_flag'):
- return self._m_transparent_color_flag if hasattr(self, '_m_transparent_color_flag') else None
-
- self._m_transparent_color_flag = (self.flags & 1) != 0
- return self._m_transparent_color_flag if hasattr(self, '_m_transparent_color_flag') else None
-
- @property
- def user_input_flag(self):
- if hasattr(self, '_m_user_input_flag'):
- return self._m_user_input_flag if hasattr(self, '_m_user_input_flag') else None
-
- self._m_user_input_flag = (self.flags & 2) != 0
- return self._m_user_input_flag if hasattr(self, '_m_user_input_flag') else None
-
-
- class Subblock(KaitaiStruct):
- SEQ_FIELDS = ["num_bytes", "bytes"]
- 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['num_bytes']['start'] = self._io.pos()
- self.num_bytes = self._io.read_u1()
- self._debug['num_bytes']['end'] = self._io.pos()
- self._debug['bytes']['start'] = self._io.pos()
- self.bytes = self._io.read_bytes(self.num_bytes)
- self._debug['bytes']['end'] = self._io.pos()
-
-
- class ExtApplication(KaitaiStruct):
- SEQ_FIELDS = ["application_id", "subblocks"]
- 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['application_id']['start'] = self._io.pos()
- self.application_id = self._root.Subblock(self._io, self, self._root)
- self.application_id._read()
- self._debug['application_id']['end'] = self._io.pos()
- self._debug['subblocks']['start'] = self._io.pos()
- self.subblocks = []
- i = 0
- while True:
- if not 'arr' in self._debug['subblocks']:
- self._debug['subblocks']['arr'] = []
- self._debug['subblocks']['arr'].append({'start': self._io.pos()})
- _t_subblocks = self._root.Subblock(self._io, self, self._root)
- _t_subblocks._read()
- _ = _t_subblocks
- self.subblocks.append(_)
- self._debug['subblocks']['arr'][len(self.subblocks) - 1]['end'] = self._io.pos()
- if _.num_bytes == 0:
- break
- i += 1
- self._debug['subblocks']['end'] = self._io.pos()
-
-
- class Subblocks(KaitaiStruct):
- SEQ_FIELDS = ["entries"]
- 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['entries']['start'] = self._io.pos()
- self.entries = []
- i = 0
- while True:
- if not 'arr' in self._debug['entries']:
- self._debug['entries']['arr'] = []
- self._debug['entries']['arr'].append({'start': self._io.pos()})
- _t_entries = self._root.Subblock(self._io, self, self._root)
- _t_entries._read()
- _ = _t_entries
- self.entries.append(_)
- self._debug['entries']['arr'][len(self.entries) - 1]['end'] = self._io.pos()
- if _.num_bytes == 0:
- break
- i += 1
- self._debug['entries']['end'] = self._io.pos()
-
-
- class Extension(KaitaiStruct):
- SEQ_FIELDS = ["label", "body"]
- 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['label']['start'] = self._io.pos()
- self.label = KaitaiStream.resolve_enum(self._root.ExtensionLabel, self._io.read_u1())
- self._debug['label']['end'] = self._io.pos()
- self._debug['body']['start'] = self._io.pos()
- _on = self.label
- if _on == self._root.ExtensionLabel.application:
- self.body = self._root.ExtApplication(self._io, self, self._root)
- self.body._read()
- elif _on == self._root.ExtensionLabel.comment:
- self.body = self._root.Subblocks(self._io, self, self._root)
- self.body._read()
- elif _on == self._root.ExtensionLabel.graphic_control:
- self.body = self._root.ExtGraphicControl(self._io, self, self._root)
- self.body._read()
- else:
- self.body = self._root.Subblocks(self._io, self, self._root)
- self.body._read()
- self._debug['body']['end'] = self._io.pos()
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/icc_4.py b/python/examples/kaitai/kaitai_struct_formats/image/icc_4.py
deleted file mode 100644
index 585358e3..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/icc_4.py
+++ /dev/null
@@ -1,3370 +0,0 @@
-from __future__ import absolute_import
-# 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()
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/ico.py b/python/examples/kaitai/kaitai_struct_formats/image/ico.py
deleted file mode 100644
index 0c9fffed..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/ico.py
+++ /dev/null
@@ -1,125 +0,0 @@
-from __future__ import absolute_import
-# 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
-
-
-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 Ico(KaitaiStruct):
- """Microsoft Windows uses specific file format to store applications
- icons - ICO. This is a container that contains one or more image
- files (effectively, DIB parts of BMP files or full PNG files are
- contained inside).
-
- .. seealso::
- Source - https://msdn.microsoft.com/en-us/library/ms997538.aspx
- """
- SEQ_FIELDS = ["magic", "num_images", "images"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x00\x00\x01\x00")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['num_images']['start'] = self._io.pos()
- self.num_images = self._io.read_u2le()
- self._debug['num_images']['end'] = self._io.pos()
- self._debug['images']['start'] = self._io.pos()
- self.images = [None] * (self.num_images)
- for i in range(self.num_images):
- if not 'arr' in self._debug['images']:
- self._debug['images']['arr'] = []
- self._debug['images']['arr'].append({'start': self._io.pos()})
- _t_images = self._root.IconDirEntry(self._io, self, self._root)
- _t_images._read()
- self.images[i] = _t_images
- self._debug['images']['arr'][i]['end'] = self._io.pos()
-
- self._debug['images']['end'] = self._io.pos()
-
- class IconDirEntry(KaitaiStruct):
- SEQ_FIELDS = ["width", "height", "num_colors", "reserved", "num_planes", "bpp", "len_img", "ofs_img"]
- 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['width']['start'] = self._io.pos()
- self.width = self._io.read_u1()
- self._debug['width']['end'] = self._io.pos()
- self._debug['height']['start'] = self._io.pos()
- self.height = self._io.read_u1()
- self._debug['height']['end'] = self._io.pos()
- self._debug['num_colors']['start'] = self._io.pos()
- self.num_colors = self._io.read_u1()
- self._debug['num_colors']['end'] = self._io.pos()
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['num_planes']['start'] = self._io.pos()
- self.num_planes = self._io.read_u2le()
- self._debug['num_planes']['end'] = self._io.pos()
- self._debug['bpp']['start'] = self._io.pos()
- self.bpp = self._io.read_u2le()
- self._debug['bpp']['end'] = self._io.pos()
- self._debug['len_img']['start'] = self._io.pos()
- self.len_img = self._io.read_u4le()
- self._debug['len_img']['end'] = self._io.pos()
- self._debug['ofs_img']['start'] = self._io.pos()
- self.ofs_img = self._io.read_u4le()
- self._debug['ofs_img']['end'] = self._io.pos()
-
- @property
- def img(self):
- """Raw image data. Use `is_png` to determine whether this is an
- embedded PNG file (true) or a DIB bitmap (false) and call a
- relevant parser, if needed to parse image data further.
- """
- if hasattr(self, '_m_img'):
- return self._m_img if hasattr(self, '_m_img') else None
-
- _pos = self._io.pos()
- self._io.seek(self.ofs_img)
- self._debug['_m_img']['start'] = self._io.pos()
- self._m_img = self._io.read_bytes(self.len_img)
- self._debug['_m_img']['end'] = self._io.pos()
- self._io.seek(_pos)
- return self._m_img if hasattr(self, '_m_img') else None
-
- @property
- def png_header(self):
- """Pre-reads first 8 bytes of the image to determine if it's an
- embedded PNG file.
- """
- if hasattr(self, '_m_png_header'):
- return self._m_png_header if hasattr(self, '_m_png_header') else None
-
- _pos = self._io.pos()
- self._io.seek(self.ofs_img)
- self._debug['_m_png_header']['start'] = self._io.pos()
- self._m_png_header = self._io.read_bytes(8)
- self._debug['_m_png_header']['end'] = self._io.pos()
- self._io.seek(_pos)
- return self._m_png_header if hasattr(self, '_m_png_header') else None
-
- @property
- def is_png(self):
- """True if this image is in PNG format."""
- if hasattr(self, '_m_is_png'):
- return self._m_is_png if hasattr(self, '_m_is_png') else None
-
- self._m_is_png = self.png_header == b"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A"
- return self._m_is_png if hasattr(self, '_m_is_png') else None
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/jpeg.py b/python/examples/kaitai/kaitai_struct_formats/image/jpeg.py
deleted file mode 100644
index ad5b527e..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/jpeg.py
+++ /dev/null
@@ -1,340 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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))
-
-from exif import Exif
-class Jpeg(KaitaiStruct):
-
- class ComponentId(Enum):
- y = 1
- cb = 2
- cr = 3
- i = 4
- q = 5
- SEQ_FIELDS = ["segments"]
- 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['segments']['start'] = self._io.pos()
- self.segments = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['segments']:
- self._debug['segments']['arr'] = []
- self._debug['segments']['arr'].append({'start': self._io.pos()})
- _t_segments = self._root.Segment(self._io, self, self._root)
- _t_segments._read()
- self.segments.append(_t_segments)
- self._debug['segments']['arr'][len(self.segments) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['segments']['end'] = self._io.pos()
-
- class Segment(KaitaiStruct):
-
- class MarkerEnum(Enum):
- tem = 1
- sof0 = 192
- sof1 = 193
- sof2 = 194
- sof3 = 195
- dht = 196
- sof5 = 197
- sof6 = 198
- sof7 = 199
- soi = 216
- eoi = 217
- sos = 218
- dqt = 219
- dnl = 220
- dri = 221
- dhp = 222
- app0 = 224
- app1 = 225
- app2 = 226
- app3 = 227
- app4 = 228
- app5 = 229
- app6 = 230
- app7 = 231
- app8 = 232
- app9 = 233
- app10 = 234
- app11 = 235
- app12 = 236
- app13 = 237
- app14 = 238
- app15 = 239
- com = 254
- SEQ_FIELDS = ["magic", "marker", "length", "data", "image_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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\xFF")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['marker']['start'] = self._io.pos()
- self.marker = KaitaiStream.resolve_enum(self._root.Segment.MarkerEnum, self._io.read_u1())
- self._debug['marker']['end'] = self._io.pos()
- if ((self.marker != self._root.Segment.MarkerEnum.soi) and (self.marker != self._root.Segment.MarkerEnum.eoi)) :
- self._debug['length']['start'] = self._io.pos()
- self.length = self._io.read_u2be()
- self._debug['length']['end'] = self._io.pos()
-
- if ((self.marker != self._root.Segment.MarkerEnum.soi) and (self.marker != self._root.Segment.MarkerEnum.eoi)) :
- self._debug['data']['start'] = self._io.pos()
- _on = self.marker
- if _on == self._root.Segment.MarkerEnum.app1:
- self._raw_data = self._io.read_bytes((self.length - 2))
- io = KaitaiStream(BytesIO(self._raw_data))
- self.data = self._root.SegmentApp1(io, self, self._root)
- self.data._read()
- elif _on == self._root.Segment.MarkerEnum.app0:
- self._raw_data = self._io.read_bytes((self.length - 2))
- io = KaitaiStream(BytesIO(self._raw_data))
- self.data = self._root.SegmentApp0(io, self, self._root)
- self.data._read()
- elif _on == self._root.Segment.MarkerEnum.sof0:
- self._raw_data = self._io.read_bytes((self.length - 2))
- io = KaitaiStream(BytesIO(self._raw_data))
- self.data = self._root.SegmentSof0(io, self, self._root)
- self.data._read()
- elif _on == self._root.Segment.MarkerEnum.sos:
- self._raw_data = self._io.read_bytes((self.length - 2))
- io = KaitaiStream(BytesIO(self._raw_data))
- self.data = self._root.SegmentSos(io, self, self._root)
- self.data._read()
- else:
- self.data = self._io.read_bytes((self.length - 2))
- self._debug['data']['end'] = self._io.pos()
-
- if self.marker == self._root.Segment.MarkerEnum.sos:
- self._debug['image_data']['start'] = self._io.pos()
- self.image_data = self._io.read_bytes_full()
- self._debug['image_data']['end'] = self._io.pos()
-
-
-
- class SegmentSos(KaitaiStruct):
- SEQ_FIELDS = ["num_components", "components", "start_spectral_selection", "end_spectral", "appr_bit_pos"]
- 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['num_components']['start'] = self._io.pos()
- self.num_components = self._io.read_u1()
- self._debug['num_components']['end'] = self._io.pos()
- self._debug['components']['start'] = self._io.pos()
- self.components = [None] * (self.num_components)
- for i in range(self.num_components):
- if not 'arr' in self._debug['components']:
- self._debug['components']['arr'] = []
- self._debug['components']['arr'].append({'start': self._io.pos()})
- _t_components = self._root.SegmentSos.Component(self._io, self, self._root)
- _t_components._read()
- self.components[i] = _t_components
- self._debug['components']['arr'][i]['end'] = self._io.pos()
-
- self._debug['components']['end'] = self._io.pos()
- self._debug['start_spectral_selection']['start'] = self._io.pos()
- self.start_spectral_selection = self._io.read_u1()
- self._debug['start_spectral_selection']['end'] = self._io.pos()
- self._debug['end_spectral']['start'] = self._io.pos()
- self.end_spectral = self._io.read_u1()
- self._debug['end_spectral']['end'] = self._io.pos()
- self._debug['appr_bit_pos']['start'] = self._io.pos()
- self.appr_bit_pos = self._io.read_u1()
- self._debug['appr_bit_pos']['end'] = self._io.pos()
-
- class Component(KaitaiStruct):
- SEQ_FIELDS = ["id", "huffman_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['id']['start'] = self._io.pos()
- self.id = KaitaiStream.resolve_enum(self._root.ComponentId, self._io.read_u1())
- self._debug['id']['end'] = self._io.pos()
- self._debug['huffman_table']['start'] = self._io.pos()
- self.huffman_table = self._io.read_u1()
- self._debug['huffman_table']['end'] = self._io.pos()
-
-
-
- class SegmentApp1(KaitaiStruct):
- SEQ_FIELDS = ["magic", "body"]
- 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['magic']['start'] = self._io.pos()
- self.magic = (self._io.read_bytes_term(0, False, True, True)).decode(u"ASCII")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['body']['start'] = self._io.pos()
- _on = self.magic
- if _on == u"Exif":
- self.body = self._root.ExifInJpeg(self._io, self, self._root)
- self.body._read()
- self._debug['body']['end'] = self._io.pos()
-
-
- class SegmentSof0(KaitaiStruct):
- SEQ_FIELDS = ["bits_per_sample", "image_height", "image_width", "num_components", "components"]
- 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['bits_per_sample']['start'] = self._io.pos()
- self.bits_per_sample = self._io.read_u1()
- self._debug['bits_per_sample']['end'] = self._io.pos()
- self._debug['image_height']['start'] = self._io.pos()
- self.image_height = self._io.read_u2be()
- self._debug['image_height']['end'] = self._io.pos()
- self._debug['image_width']['start'] = self._io.pos()
- self.image_width = self._io.read_u2be()
- self._debug['image_width']['end'] = self._io.pos()
- self._debug['num_components']['start'] = self._io.pos()
- self.num_components = self._io.read_u1()
- self._debug['num_components']['end'] = self._io.pos()
- self._debug['components']['start'] = self._io.pos()
- self.components = [None] * (self.num_components)
- for i in range(self.num_components):
- if not 'arr' in self._debug['components']:
- self._debug['components']['arr'] = []
- self._debug['components']['arr'].append({'start': self._io.pos()})
- _t_components = self._root.SegmentSof0.Component(self._io, self, self._root)
- _t_components._read()
- self.components[i] = _t_components
- self._debug['components']['arr'][i]['end'] = self._io.pos()
-
- self._debug['components']['end'] = self._io.pos()
-
- class Component(KaitaiStruct):
- SEQ_FIELDS = ["id", "sampling_factors", "quantization_table_id"]
- 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['id']['start'] = self._io.pos()
- self.id = KaitaiStream.resolve_enum(self._root.ComponentId, self._io.read_u1())
- self._debug['id']['end'] = self._io.pos()
- self._debug['sampling_factors']['start'] = self._io.pos()
- self.sampling_factors = self._io.read_u1()
- self._debug['sampling_factors']['end'] = self._io.pos()
- self._debug['quantization_table_id']['start'] = self._io.pos()
- self.quantization_table_id = self._io.read_u1()
- self._debug['quantization_table_id']['end'] = self._io.pos()
-
- @property
- def sampling_x(self):
- if hasattr(self, '_m_sampling_x'):
- return self._m_sampling_x if hasattr(self, '_m_sampling_x') else None
-
- self._m_sampling_x = ((self.sampling_factors & 240) >> 4)
- return self._m_sampling_x if hasattr(self, '_m_sampling_x') else None
-
- @property
- def sampling_y(self):
- if hasattr(self, '_m_sampling_y'):
- return self._m_sampling_y if hasattr(self, '_m_sampling_y') else None
-
- self._m_sampling_y = (self.sampling_factors & 15)
- return self._m_sampling_y if hasattr(self, '_m_sampling_y') else None
-
-
-
- class ExifInJpeg(KaitaiStruct):
- SEQ_FIELDS = ["extra_zero", "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['extra_zero']['start'] = self._io.pos()
- self.extra_zero = self._io.ensure_fixed_contents(b"\x00")
- self._debug['extra_zero']['end'] = self._io.pos()
- self._debug['data']['start'] = self._io.pos()
- self._raw_data = self._io.read_bytes_full()
- io = KaitaiStream(BytesIO(self._raw_data))
- self.data = Exif(io)
- self.data._read()
- self._debug['data']['end'] = self._io.pos()
-
-
- class SegmentApp0(KaitaiStruct):
-
- class DensityUnit(Enum):
- no_units = 0
- pixels_per_inch = 1
- pixels_per_cm = 2
- SEQ_FIELDS = ["magic", "version_major", "version_minor", "density_units", "density_x", "density_y", "thumbnail_x", "thumbnail_y", "thumbnail"]
- 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['magic']['start'] = self._io.pos()
- self.magic = (self._io.read_bytes(5)).decode(u"ASCII")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['version_major']['start'] = self._io.pos()
- self.version_major = self._io.read_u1()
- self._debug['version_major']['end'] = self._io.pos()
- self._debug['version_minor']['start'] = self._io.pos()
- self.version_minor = self._io.read_u1()
- self._debug['version_minor']['end'] = self._io.pos()
- self._debug['density_units']['start'] = self._io.pos()
- self.density_units = KaitaiStream.resolve_enum(self._root.SegmentApp0.DensityUnit, self._io.read_u1())
- self._debug['density_units']['end'] = self._io.pos()
- self._debug['density_x']['start'] = self._io.pos()
- self.density_x = self._io.read_u2be()
- self._debug['density_x']['end'] = self._io.pos()
- self._debug['density_y']['start'] = self._io.pos()
- self.density_y = self._io.read_u2be()
- self._debug['density_y']['end'] = self._io.pos()
- self._debug['thumbnail_x']['start'] = self._io.pos()
- self.thumbnail_x = self._io.read_u1()
- self._debug['thumbnail_x']['end'] = self._io.pos()
- self._debug['thumbnail_y']['start'] = self._io.pos()
- self.thumbnail_y = self._io.read_u1()
- self._debug['thumbnail_y']['end'] = self._io.pos()
- self._debug['thumbnail']['start'] = self._io.pos()
- self.thumbnail = self._io.read_bytes(((self.thumbnail_x * self.thumbnail_y) * 3))
- self._debug['thumbnail']['end'] = self._io.pos()
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/pcx.py b/python/examples/kaitai/kaitai_struct_formats/image/pcx.py
deleted file mode 100644
index a343ff3a..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/pcx.py
+++ /dev/null
@@ -1,171 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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 Pcx(KaitaiStruct):
-
- class Versions(Enum):
- v2_5 = 0
- v2_8_with_palette = 2
- v2_8_without_palette = 3
- paintbrush_for_windows = 4
- v3_0 = 5
-
- class Encodings(Enum):
- rle = 1
- SEQ_FIELDS = ["hdr"]
- 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['hdr']['start'] = self._io.pos()
- self._raw_hdr = self._io.read_bytes(128)
- io = KaitaiStream(BytesIO(self._raw_hdr))
- self.hdr = self._root.Header(io, self, self._root)
- self.hdr._read()
- self._debug['hdr']['end'] = self._io.pos()
-
- class Header(KaitaiStruct):
- """
- .. seealso::
- - "ZSoft .PCX FILE HEADER FORMAT" - http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
- """
- SEQ_FIELDS = ["magic", "version", "encoding", "bits_per_pixel", "img_x_min", "img_y_min", "img_x_max", "img_y_max", "hdpi", "vdpi", "palette_16", "reserved", "num_planes", "bytes_per_line", "palette_info", "h_screen_size", "v_screen_size"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x0A")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['version']['start'] = self._io.pos()
- self.version = KaitaiStream.resolve_enum(self._root.Versions, self._io.read_u1())
- self._debug['version']['end'] = self._io.pos()
- self._debug['encoding']['start'] = self._io.pos()
- self.encoding = KaitaiStream.resolve_enum(self._root.Encodings, self._io.read_u1())
- self._debug['encoding']['end'] = self._io.pos()
- self._debug['bits_per_pixel']['start'] = self._io.pos()
- self.bits_per_pixel = self._io.read_u1()
- self._debug['bits_per_pixel']['end'] = self._io.pos()
- self._debug['img_x_min']['start'] = self._io.pos()
- self.img_x_min = self._io.read_u2le()
- self._debug['img_x_min']['end'] = self._io.pos()
- self._debug['img_y_min']['start'] = self._io.pos()
- self.img_y_min = self._io.read_u2le()
- self._debug['img_y_min']['end'] = self._io.pos()
- self._debug['img_x_max']['start'] = self._io.pos()
- self.img_x_max = self._io.read_u2le()
- self._debug['img_x_max']['end'] = self._io.pos()
- self._debug['img_y_max']['start'] = self._io.pos()
- self.img_y_max = self._io.read_u2le()
- self._debug['img_y_max']['end'] = self._io.pos()
- self._debug['hdpi']['start'] = self._io.pos()
- self.hdpi = self._io.read_u2le()
- self._debug['hdpi']['end'] = self._io.pos()
- self._debug['vdpi']['start'] = self._io.pos()
- self.vdpi = self._io.read_u2le()
- self._debug['vdpi']['end'] = self._io.pos()
- self._debug['palette_16']['start'] = self._io.pos()
- self.palette_16 = self._io.read_bytes(48)
- self._debug['palette_16']['end'] = self._io.pos()
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.ensure_fixed_contents(b"\x00")
- self._debug['reserved']['end'] = self._io.pos()
- self._debug['num_planes']['start'] = self._io.pos()
- self.num_planes = self._io.read_u1()
- self._debug['num_planes']['end'] = self._io.pos()
- self._debug['bytes_per_line']['start'] = self._io.pos()
- self.bytes_per_line = self._io.read_u2le()
- self._debug['bytes_per_line']['end'] = self._io.pos()
- self._debug['palette_info']['start'] = self._io.pos()
- self.palette_info = self._io.read_u2le()
- self._debug['palette_info']['end'] = self._io.pos()
- self._debug['h_screen_size']['start'] = self._io.pos()
- self.h_screen_size = self._io.read_u2le()
- self._debug['h_screen_size']['end'] = self._io.pos()
- self._debug['v_screen_size']['start'] = self._io.pos()
- self.v_screen_size = self._io.read_u2le()
- self._debug['v_screen_size']['end'] = self._io.pos()
-
-
- class TPalette256(KaitaiStruct):
- SEQ_FIELDS = ["magic", "colors"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x0C")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['colors']['start'] = self._io.pos()
- self.colors = [None] * (256)
- for i in range(256):
- if not 'arr' in self._debug['colors']:
- self._debug['colors']['arr'] = []
- self._debug['colors']['arr'].append({'start': self._io.pos()})
- _t_colors = self._root.Rgb(self._io, self, self._root)
- _t_colors._read()
- self.colors[i] = _t_colors
- self._debug['colors']['arr'][i]['end'] = self._io.pos()
-
- self._debug['colors']['end'] = self._io.pos()
-
-
- class Rgb(KaitaiStruct):
- SEQ_FIELDS = ["r", "g", "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['r']['start'] = self._io.pos()
- self.r = self._io.read_u1()
- self._debug['r']['end'] = self._io.pos()
- self._debug['g']['start'] = self._io.pos()
- self.g = self._io.read_u1()
- self._debug['g']['end'] = self._io.pos()
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_u1()
- self._debug['b']['end'] = self._io.pos()
-
-
- @property
- def palette_256(self):
- """
- .. seealso::
- - "VGA 256 Color Palette Information" - http://web.archive.org/web/20100206055706/http://www.qzx.com/pc-gpe/pcx.txt
- """
- if hasattr(self, '_m_palette_256'):
- return self._m_palette_256 if hasattr(self, '_m_palette_256') else None
-
- if ((self.hdr.version == self._root.Versions.v3_0) and (self.hdr.bits_per_pixel == 8) and (self.hdr.num_planes == 1)) :
- _pos = self._io.pos()
- self._io.seek((self._io.size() - 769))
- self._debug['_m_palette_256']['start'] = self._io.pos()
- self._m_palette_256 = self._root.TPalette256(self._io, self, self._root)
- self._m_palette_256._read()
- self._debug['_m_palette_256']['end'] = self._io.pos()
- self._io.seek(_pos)
-
- return self._m_palette_256 if hasattr(self, '_m_palette_256') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/pcx_dcx.py b/python/examples/kaitai/kaitai_struct_formats/image/pcx_dcx.py
deleted file mode 100644
index a559ec30..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/pcx_dcx.py
+++ /dev/null
@@ -1,77 +0,0 @@
-from __future__ import absolute_import
-# 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
-
-
-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))
-
-from pcx import Pcx
-class PcxDcx(KaitaiStruct):
- """DCX is a simple extension of PCX image format allowing to bundle
- many PCX images (typically, pages of a document) in one file. It saw
- some limited use in DOS-era fax software, but was largely
- superseeded with multi-page TIFFs and PDFs since then.
- """
- SEQ_FIELDS = ["magic", "files"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\xB1\x68\xDE\x3A")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['files']['start'] = self._io.pos()
- self.files = []
- i = 0
- while True:
- if not 'arr' in self._debug['files']:
- self._debug['files']['arr'] = []
- self._debug['files']['arr'].append({'start': self._io.pos()})
- _t_files = self._root.PcxOffset(self._io, self, self._root)
- _t_files._read()
- _ = _t_files
- self.files.append(_)
- self._debug['files']['arr'][len(self.files) - 1]['end'] = self._io.pos()
- if _.ofs_body == 0:
- break
- i += 1
- self._debug['files']['end'] = self._io.pos()
-
- class PcxOffset(KaitaiStruct):
- SEQ_FIELDS = ["ofs_body"]
- 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['ofs_body']['start'] = self._io.pos()
- self.ofs_body = self._io.read_u4le()
- self._debug['ofs_body']['end'] = self._io.pos()
-
- @property
- def body(self):
- if hasattr(self, '_m_body'):
- return self._m_body if hasattr(self, '_m_body') else None
-
- if self.ofs_body != 0:
- _pos = self._io.pos()
- self._io.seek(self.ofs_body)
- self._debug['_m_body']['start'] = self._io.pos()
- self._m_body = Pcx(self._io)
- self._m_body._read()
- self._debug['_m_body']['end'] = self._io.pos()
- self._io.seek(_pos)
-
- return self._m_body if hasattr(self, '_m_body') else None
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/png.py b/python/examples/kaitai/kaitai_struct_formats/image/png.py
deleted file mode 100644
index 751e1596..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/png.py
+++ /dev/null
@@ -1,581 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-import zlib
-
-
-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 Png(KaitaiStruct):
-
- class ColorType(Enum):
- greyscale = 0
- truecolor = 2
- indexed = 3
- greyscale_alpha = 4
- truecolor_alpha = 6
-
- class PhysUnit(Enum):
- unknown = 0
- meter = 1
-
- class CompressionMethods(Enum):
- zlib = 0
- SEQ_FIELDS = ["magic", "ihdr_len", "ihdr_type", "ihdr", "ihdr_crc", "chunks"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['ihdr_len']['start'] = self._io.pos()
- self.ihdr_len = self._io.ensure_fixed_contents(b"\x00\x00\x00\x0D")
- self._debug['ihdr_len']['end'] = self._io.pos()
- self._debug['ihdr_type']['start'] = self._io.pos()
- self.ihdr_type = self._io.ensure_fixed_contents(b"\x49\x48\x44\x52")
- self._debug['ihdr_type']['end'] = self._io.pos()
- self._debug['ihdr']['start'] = self._io.pos()
- self.ihdr = self._root.IhdrChunk(self._io, self, self._root)
- self.ihdr._read()
- self._debug['ihdr']['end'] = self._io.pos()
- self._debug['ihdr_crc']['start'] = self._io.pos()
- self.ihdr_crc = self._io.read_bytes(4)
- self._debug['ihdr_crc']['end'] = self._io.pos()
- self._debug['chunks']['start'] = self._io.pos()
- self.chunks = []
- i = 0
- while True:
- if not 'arr' in self._debug['chunks']:
- self._debug['chunks']['arr'] = []
- self._debug['chunks']['arr'].append({'start': self._io.pos()})
- _t_chunks = self._root.Chunk(self._io, self, self._root)
- _t_chunks._read()
- _ = _t_chunks
- self.chunks.append(_)
- self._debug['chunks']['arr'][len(self.chunks) - 1]['end'] = self._io.pos()
- if ((_.type == u"IEND") or (self._io.is_eof())) :
- break
- i += 1
- self._debug['chunks']['end'] = self._io.pos()
-
- class Rgb(KaitaiStruct):
- SEQ_FIELDS = ["r", "g", "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['r']['start'] = self._io.pos()
- self.r = self._io.read_u1()
- self._debug['r']['end'] = self._io.pos()
- self._debug['g']['start'] = self._io.pos()
- self.g = self._io.read_u1()
- self._debug['g']['end'] = self._io.pos()
- self._debug['b']['start'] = self._io.pos()
- self.b = self._io.read_u1()
- self._debug['b']['end'] = self._io.pos()
-
-
- class Chunk(KaitaiStruct):
- SEQ_FIELDS = ["len", "type", "body", "crc"]
- 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['len']['start'] = self._io.pos()
- self.len = self._io.read_u4be()
- self._debug['len']['end'] = self._io.pos()
- self._debug['type']['start'] = self._io.pos()
- self.type = (self._io.read_bytes(4)).decode(u"UTF-8")
- self._debug['type']['end'] = self._io.pos()
- self._debug['body']['start'] = self._io.pos()
- _on = self.type
- if _on == u"iTXt":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.InternationalTextChunk(io, self, self._root)
- self.body._read()
- elif _on == u"gAMA":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.GamaChunk(io, self, self._root)
- self.body._read()
- elif _on == u"tIME":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.TimeChunk(io, self, self._root)
- self.body._read()
- elif _on == u"PLTE":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.PlteChunk(io, self, self._root)
- self.body._read()
- elif _on == u"bKGD":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.BkgdChunk(io, self, self._root)
- self.body._read()
- elif _on == u"pHYs":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.PhysChunk(io, self, self._root)
- self.body._read()
- elif _on == u"tEXt":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.TextChunk(io, self, self._root)
- self.body._read()
- elif _on == u"cHRM":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.ChrmChunk(io, self, self._root)
- self.body._read()
- elif _on == u"sRGB":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.SrgbChunk(io, self, self._root)
- self.body._read()
- elif _on == u"zTXt":
- self._raw_body = self._io.read_bytes(self.len)
- io = KaitaiStream(BytesIO(self._raw_body))
- self.body = self._root.CompressedTextChunk(io, self, self._root)
- self.body._read()
- else:
- self.body = self._io.read_bytes(self.len)
- self._debug['body']['end'] = self._io.pos()
- self._debug['crc']['start'] = self._io.pos()
- self.crc = self._io.read_bytes(4)
- self._debug['crc']['end'] = self._io.pos()
-
-
- class BkgdIndexed(KaitaiStruct):
- """Background chunk for images with indexed palette."""
- SEQ_FIELDS = ["palette_index"]
- 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['palette_index']['start'] = self._io.pos()
- self.palette_index = self._io.read_u1()
- self._debug['palette_index']['end'] = self._io.pos()
-
-
- class Point(KaitaiStruct):
- SEQ_FIELDS = ["x_int", "y_int"]
- 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_int']['start'] = self._io.pos()
- self.x_int = self._io.read_u4be()
- self._debug['x_int']['end'] = self._io.pos()
- self._debug['y_int']['start'] = self._io.pos()
- self.y_int = self._io.read_u4be()
- self._debug['y_int']['end'] = self._io.pos()
-
- @property
- def x(self):
- if hasattr(self, '_m_x'):
- return self._m_x if hasattr(self, '_m_x') else None
-
- self._m_x = (self.x_int / 100000.0)
- return self._m_x if hasattr(self, '_m_x') else None
-
- @property
- def y(self):
- if hasattr(self, '_m_y'):
- return self._m_y if hasattr(self, '_m_y') else None
-
- self._m_y = (self.y_int / 100000.0)
- return self._m_y if hasattr(self, '_m_y') else None
-
-
- class BkgdGreyscale(KaitaiStruct):
- """Background chunk for greyscale images."""
- SEQ_FIELDS = ["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['value']['start'] = self._io.pos()
- self.value = self._io.read_u2be()
- self._debug['value']['end'] = self._io.pos()
-
-
- class ChrmChunk(KaitaiStruct):
- """
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11cHRM
- """
- SEQ_FIELDS = ["white_point", "red", "green", "blue"]
- 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['white_point']['start'] = self._io.pos()
- self.white_point = self._root.Point(self._io, self, self._root)
- self.white_point._read()
- self._debug['white_point']['end'] = self._io.pos()
- self._debug['red']['start'] = self._io.pos()
- self.red = self._root.Point(self._io, self, self._root)
- self.red._read()
- self._debug['red']['end'] = self._io.pos()
- self._debug['green']['start'] = self._io.pos()
- self.green = self._root.Point(self._io, self, self._root)
- self.green._read()
- self._debug['green']['end'] = self._io.pos()
- self._debug['blue']['start'] = self._io.pos()
- self.blue = self._root.Point(self._io, self, self._root)
- self.blue._read()
- self._debug['blue']['end'] = self._io.pos()
-
-
- class IhdrChunk(KaitaiStruct):
- """
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11IHDR
- """
- SEQ_FIELDS = ["width", "height", "bit_depth", "color_type", "compression_method", "filter_method", "interlace_method"]
- 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['width']['start'] = self._io.pos()
- self.width = self._io.read_u4be()
- self._debug['width']['end'] = self._io.pos()
- self._debug['height']['start'] = self._io.pos()
- self.height = self._io.read_u4be()
- self._debug['height']['end'] = self._io.pos()
- self._debug['bit_depth']['start'] = self._io.pos()
- self.bit_depth = self._io.read_u1()
- self._debug['bit_depth']['end'] = self._io.pos()
- self._debug['color_type']['start'] = self._io.pos()
- self.color_type = KaitaiStream.resolve_enum(self._root.ColorType, self._io.read_u1())
- self._debug['color_type']['end'] = self._io.pos()
- self._debug['compression_method']['start'] = self._io.pos()
- self.compression_method = self._io.read_u1()
- self._debug['compression_method']['end'] = self._io.pos()
- self._debug['filter_method']['start'] = self._io.pos()
- self.filter_method = self._io.read_u1()
- self._debug['filter_method']['end'] = self._io.pos()
- self._debug['interlace_method']['start'] = self._io.pos()
- self.interlace_method = self._io.read_u1()
- self._debug['interlace_method']['end'] = self._io.pos()
-
-
- class PlteChunk(KaitaiStruct):
- """
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11PLTE
- """
- SEQ_FIELDS = ["entries"]
- 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['entries']['start'] = self._io.pos()
- self.entries = []
- i = 0
- while not self._io.is_eof():
- if not 'arr' in self._debug['entries']:
- self._debug['entries']['arr'] = []
- self._debug['entries']['arr'].append({'start': self._io.pos()})
- _t_entries = self._root.Rgb(self._io, self, self._root)
- _t_entries._read()
- self.entries.append(_t_entries)
- self._debug['entries']['arr'][len(self.entries) - 1]['end'] = self._io.pos()
- i += 1
-
- self._debug['entries']['end'] = self._io.pos()
-
-
- class SrgbChunk(KaitaiStruct):
- """
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11sRGB
- """
-
- class Intent(Enum):
- perceptual = 0
- relative_colorimetric = 1
- saturation = 2
- absolute_colorimetric = 3
- SEQ_FIELDS = ["render_intent"]
- 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['render_intent']['start'] = self._io.pos()
- self.render_intent = KaitaiStream.resolve_enum(self._root.SrgbChunk.Intent, self._io.read_u1())
- self._debug['render_intent']['end'] = self._io.pos()
-
-
- class CompressedTextChunk(KaitaiStruct):
- """Compressed text chunk effectively allows to store key-value
- string pairs in PNG container, compressing "value" part (which
- can be quite lengthy) with zlib compression.
-
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11zTXt
- """
- SEQ_FIELDS = ["keyword", "compression_method", "text_datastream"]
- 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['keyword']['start'] = self._io.pos()
- self.keyword = (self._io.read_bytes_term(0, False, True, True)).decode(u"UTF-8")
- self._debug['keyword']['end'] = self._io.pos()
- self._debug['compression_method']['start'] = self._io.pos()
- self.compression_method = KaitaiStream.resolve_enum(self._root.CompressionMethods, self._io.read_u1())
- self._debug['compression_method']['end'] = self._io.pos()
- self._debug['text_datastream']['start'] = self._io.pos()
- self._raw_text_datastream = self._io.read_bytes_full()
- self.text_datastream = zlib.decompress(self._raw_text_datastream)
- self._debug['text_datastream']['end'] = self._io.pos()
-
-
- class BkgdTruecolor(KaitaiStruct):
- """Background chunk for truecolor images."""
- SEQ_FIELDS = ["red", "green", "blue"]
- 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['red']['start'] = self._io.pos()
- self.red = self._io.read_u2be()
- self._debug['red']['end'] = self._io.pos()
- self._debug['green']['start'] = self._io.pos()
- self.green = self._io.read_u2be()
- self._debug['green']['end'] = self._io.pos()
- self._debug['blue']['start'] = self._io.pos()
- self.blue = self._io.read_u2be()
- self._debug['blue']['end'] = self._io.pos()
-
-
- class GamaChunk(KaitaiStruct):
- """
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11gAMA
- """
- SEQ_FIELDS = ["gamma_int"]
- 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['gamma_int']['start'] = self._io.pos()
- self.gamma_int = self._io.read_u4be()
- self._debug['gamma_int']['end'] = self._io.pos()
-
- @property
- def gamma_ratio(self):
- if hasattr(self, '_m_gamma_ratio'):
- return self._m_gamma_ratio if hasattr(self, '_m_gamma_ratio') else None
-
- self._m_gamma_ratio = (100000.0 / self.gamma_int)
- return self._m_gamma_ratio if hasattr(self, '_m_gamma_ratio') else None
-
-
- class BkgdChunk(KaitaiStruct):
- """Background chunk stores default background color to display this
- image against. Contents depend on `color_type` of the image.
-
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11bKGD
- """
- SEQ_FIELDS = ["bkgd"]
- 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['bkgd']['start'] = self._io.pos()
- _on = self._root.ihdr.color_type
- if _on == self._root.ColorType.indexed:
- self.bkgd = self._root.BkgdIndexed(self._io, self, self._root)
- self.bkgd._read()
- elif _on == self._root.ColorType.truecolor_alpha:
- self.bkgd = self._root.BkgdTruecolor(self._io, self, self._root)
- self.bkgd._read()
- elif _on == self._root.ColorType.greyscale_alpha:
- self.bkgd = self._root.BkgdGreyscale(self._io, self, self._root)
- self.bkgd._read()
- elif _on == self._root.ColorType.truecolor:
- self.bkgd = self._root.BkgdTruecolor(self._io, self, self._root)
- self.bkgd._read()
- elif _on == self._root.ColorType.greyscale:
- self.bkgd = self._root.BkgdGreyscale(self._io, self, self._root)
- self.bkgd._read()
- self._debug['bkgd']['end'] = self._io.pos()
-
-
- class PhysChunk(KaitaiStruct):
- """"Physical size" chunk stores data that allows to translate
- logical pixels into physical units (meters, etc) and vice-versa.
-
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11pHYs
- """
- SEQ_FIELDS = ["pixels_per_unit_x", "pixels_per_unit_y", "unit"]
- 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['pixels_per_unit_x']['start'] = self._io.pos()
- self.pixels_per_unit_x = self._io.read_u4be()
- self._debug['pixels_per_unit_x']['end'] = self._io.pos()
- self._debug['pixels_per_unit_y']['start'] = self._io.pos()
- self.pixels_per_unit_y = self._io.read_u4be()
- self._debug['pixels_per_unit_y']['end'] = self._io.pos()
- self._debug['unit']['start'] = self._io.pos()
- self.unit = KaitaiStream.resolve_enum(self._root.PhysUnit, self._io.read_u1())
- self._debug['unit']['end'] = self._io.pos()
-
-
- class InternationalTextChunk(KaitaiStruct):
- """International text chunk effectively allows to store key-value string pairs in
- PNG container. Both "key" (keyword) and "value" (text) parts are
- given in pre-defined subset of iso8859-1 without control
- characters.
-
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11iTXt
- """
- SEQ_FIELDS = ["keyword", "compression_flag", "compression_method", "language_tag", "translated_keyword", "text"]
- 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['keyword']['start'] = self._io.pos()
- self.keyword = (self._io.read_bytes_term(0, False, True, True)).decode(u"UTF-8")
- self._debug['keyword']['end'] = self._io.pos()
- self._debug['compression_flag']['start'] = self._io.pos()
- self.compression_flag = self._io.read_u1()
- self._debug['compression_flag']['end'] = self._io.pos()
- self._debug['compression_method']['start'] = self._io.pos()
- self.compression_method = KaitaiStream.resolve_enum(self._root.CompressionMethods, self._io.read_u1())
- self._debug['compression_method']['end'] = self._io.pos()
- self._debug['language_tag']['start'] = self._io.pos()
- self.language_tag = (self._io.read_bytes_term(0, False, True, True)).decode(u"ASCII")
- self._debug['language_tag']['end'] = self._io.pos()
- self._debug['translated_keyword']['start'] = self._io.pos()
- self.translated_keyword = (self._io.read_bytes_term(0, False, True, True)).decode(u"UTF-8")
- self._debug['translated_keyword']['end'] = self._io.pos()
- self._debug['text']['start'] = self._io.pos()
- self.text = (self._io.read_bytes_full()).decode(u"UTF-8")
- self._debug['text']['end'] = self._io.pos()
-
-
- class TextChunk(KaitaiStruct):
- """Text chunk effectively allows to store key-value string pairs in
- PNG container. Both "key" (keyword) and "value" (text) parts are
- given in pre-defined subset of iso8859-1 without control
- characters.
-
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11tEXt
- """
- SEQ_FIELDS = ["keyword", "text"]
- 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['keyword']['start'] = self._io.pos()
- self.keyword = (self._io.read_bytes_term(0, False, True, True)).decode(u"iso8859-1")
- self._debug['keyword']['end'] = self._io.pos()
- self._debug['text']['start'] = self._io.pos()
- self.text = (self._io.read_bytes_full()).decode(u"iso8859-1")
- self._debug['text']['end'] = self._io.pos()
-
-
- class TimeChunk(KaitaiStruct):
- """Time chunk stores time stamp of last modification of this image,
- up to 1 second precision in UTC timezone.
-
- .. seealso::
- Source - https://www.w3.org/TR/PNG/#11tIME
- """
- 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_u1()
- self._debug['month']['end'] = self._io.pos()
- self._debug['day']['start'] = self._io.pos()
- self.day = self._io.read_u1()
- self._debug['day']['end'] = self._io.pos()
- self._debug['hour']['start'] = self._io.pos()
- self.hour = self._io.read_u1()
- self._debug['hour']['end'] = self._io.pos()
- self._debug['minute']['start'] = self._io.pos()
- self.minute = self._io.read_u1()
- self._debug['minute']['end'] = self._io.pos()
- self._debug['second']['start'] = self._io.pos()
- self.second = self._io.read_u1()
- self._debug['second']['end'] = self._io.pos()
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/psx_tim.py b/python/examples/kaitai/kaitai_struct_formats/image/psx_tim.py
deleted file mode 100644
index 3c70a905..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/psx_tim.py
+++ /dev/null
@@ -1,90 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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 PsxTim(KaitaiStruct):
-
- class BppType(Enum):
- bpp_4 = 0
- bpp_8 = 1
- bpp_16 = 2
- bpp_24 = 3
- SEQ_FIELDS = ["magic", "flags", "clut", "img"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\x10\x00\x00\x00")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['flags']['start'] = self._io.pos()
- self.flags = self._io.read_u4le()
- self._debug['flags']['end'] = self._io.pos()
- if self.has_clut:
- self._debug['clut']['start'] = self._io.pos()
- self.clut = self._root.Bitmap(self._io, self, self._root)
- self.clut._read()
- self._debug['clut']['end'] = self._io.pos()
-
- self._debug['img']['start'] = self._io.pos()
- self.img = self._root.Bitmap(self._io, self, self._root)
- self.img._read()
- self._debug['img']['end'] = self._io.pos()
-
- class Bitmap(KaitaiStruct):
- SEQ_FIELDS = ["len", "origin_x", "origin_y", "width", "height", "body"]
- 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['len']['start'] = self._io.pos()
- self.len = self._io.read_u4le()
- self._debug['len']['end'] = self._io.pos()
- self._debug['origin_x']['start'] = self._io.pos()
- self.origin_x = self._io.read_u2le()
- self._debug['origin_x']['end'] = self._io.pos()
- self._debug['origin_y']['start'] = self._io.pos()
- self.origin_y = self._io.read_u2le()
- self._debug['origin_y']['end'] = self._io.pos()
- self._debug['width']['start'] = self._io.pos()
- self.width = self._io.read_u2le()
- self._debug['width']['end'] = self._io.pos()
- self._debug['height']['start'] = self._io.pos()
- self.height = self._io.read_u2le()
- self._debug['height']['end'] = self._io.pos()
- self._debug['body']['start'] = self._io.pos()
- self.body = self._io.read_bytes((self.len - 12))
- self._debug['body']['end'] = self._io.pos()
-
-
- @property
- def has_clut(self):
- if hasattr(self, '_m_has_clut'):
- return self._m_has_clut if hasattr(self, '_m_has_clut') else None
-
- self._m_has_clut = (self.flags & 8) != 0
- return self._m_has_clut if hasattr(self, '_m_has_clut') else None
-
- @property
- def bpp(self):
- if hasattr(self, '_m_bpp'):
- return self._m_bpp if hasattr(self, '_m_bpp') else None
-
- self._m_bpp = (self.flags & 3)
- return self._m_bpp if hasattr(self, '_m_bpp') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/tga.py b/python/examples/kaitai/kaitai_struct_formats/image/tga.py
deleted file mode 100644
index 7939bbc2..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/tga.py
+++ /dev/null
@@ -1,213 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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 Tga(KaitaiStruct):
- """TGA (AKA Truevision TGA, AKA TARGA), is a raster image file format created by Truevision. It supports up to 32 bits per pixel (three 8-bit RGB channels + 8-bit alpha channel), color mapping and optional lossless RLE compression.
-
- .. seealso::
- Source - http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf
- """
-
- class ColorMapEnum(Enum):
- no_color_map = 0
- has_color_map = 1
-
- class ImageTypeEnum(Enum):
- no_image_data = 0
- uncomp_color_mapped = 1
- uncomp_true_color = 2
- uncomp_bw = 3
- rle_color_mapped = 9
- rle_true_color = 10
- rle_bw = 11
- SEQ_FIELDS = ["image_id_len", "color_map_type", "image_type", "color_map_ofs", "num_color_map", "color_map_depth", "x_offset", "y_offset", "width", "height", "image_depth", "img_descriptor", "image_id", "color_map"]
- 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['image_id_len']['start'] = self._io.pos()
- self.image_id_len = self._io.read_u1()
- self._debug['image_id_len']['end'] = self._io.pos()
- self._debug['color_map_type']['start'] = self._io.pos()
- self.color_map_type = KaitaiStream.resolve_enum(self._root.ColorMapEnum, self._io.read_u1())
- self._debug['color_map_type']['end'] = self._io.pos()
- self._debug['image_type']['start'] = self._io.pos()
- self.image_type = KaitaiStream.resolve_enum(self._root.ImageTypeEnum, self._io.read_u1())
- self._debug['image_type']['end'] = self._io.pos()
- self._debug['color_map_ofs']['start'] = self._io.pos()
- self.color_map_ofs = self._io.read_u2le()
- self._debug['color_map_ofs']['end'] = self._io.pos()
- self._debug['num_color_map']['start'] = self._io.pos()
- self.num_color_map = self._io.read_u2le()
- self._debug['num_color_map']['end'] = self._io.pos()
- self._debug['color_map_depth']['start'] = self._io.pos()
- self.color_map_depth = self._io.read_u1()
- self._debug['color_map_depth']['end'] = self._io.pos()
- self._debug['x_offset']['start'] = self._io.pos()
- self.x_offset = self._io.read_u2le()
- self._debug['x_offset']['end'] = self._io.pos()
- self._debug['y_offset']['start'] = self._io.pos()
- self.y_offset = self._io.read_u2le()
- self._debug['y_offset']['end'] = self._io.pos()
- self._debug['width']['start'] = self._io.pos()
- self.width = self._io.read_u2le()
- self._debug['width']['end'] = self._io.pos()
- self._debug['height']['start'] = self._io.pos()
- self.height = self._io.read_u2le()
- self._debug['height']['end'] = self._io.pos()
- self._debug['image_depth']['start'] = self._io.pos()
- self.image_depth = self._io.read_u1()
- self._debug['image_depth']['end'] = self._io.pos()
- self._debug['img_descriptor']['start'] = self._io.pos()
- self.img_descriptor = self._io.read_u1()
- self._debug['img_descriptor']['end'] = self._io.pos()
- self._debug['image_id']['start'] = self._io.pos()
- self.image_id = self._io.read_bytes(self.image_id_len)
- self._debug['image_id']['end'] = self._io.pos()
- if self.color_map_type == self._root.ColorMapEnum.has_color_map:
- self._debug['color_map']['start'] = self._io.pos()
- self.color_map = [None] * (self.num_color_map)
- for i in range(self.num_color_map):
- if not 'arr' in self._debug['color_map']:
- self._debug['color_map']['arr'] = []
- self._debug['color_map']['arr'].append({'start': self._io.pos()})
- self.color_map[i] = self._io.read_bytes((self.color_map_depth + 7) // 8)
- self._debug['color_map']['arr'][i]['end'] = self._io.pos()
-
- self._debug['color_map']['end'] = self._io.pos()
-
-
- class TgaFooter(KaitaiStruct):
- SEQ_FIELDS = ["ext_area_ofs", "dev_dir_ofs", "version_magic"]
- 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['ext_area_ofs']['start'] = self._io.pos()
- self.ext_area_ofs = self._io.read_u4le()
- self._debug['ext_area_ofs']['end'] = self._io.pos()
- self._debug['dev_dir_ofs']['start'] = self._io.pos()
- self.dev_dir_ofs = self._io.read_u4le()
- self._debug['dev_dir_ofs']['end'] = self._io.pos()
- self._debug['version_magic']['start'] = self._io.pos()
- self.version_magic = self._io.read_bytes(18)
- self._debug['version_magic']['end'] = self._io.pos()
-
- @property
- def is_valid(self):
- if hasattr(self, '_m_is_valid'):
- return self._m_is_valid if hasattr(self, '_m_is_valid') else None
-
- self._m_is_valid = self.version_magic == b"\x54\x52\x55\x45\x56\x49\x53\x49\x4F\x4E\x2D\x58\x46\x49\x4C\x45\x2E\x00"
- return self._m_is_valid if hasattr(self, '_m_is_valid') else None
-
- @property
- def ext_area(self):
- if hasattr(self, '_m_ext_area'):
- return self._m_ext_area if hasattr(self, '_m_ext_area') else None
-
- if self.is_valid:
- _pos = self._io.pos()
- self._io.seek(self.ext_area_ofs)
- self._debug['_m_ext_area']['start'] = self._io.pos()
- self._m_ext_area = self._root.TgaExtArea(self._io, self, self._root)
- self._m_ext_area._read()
- self._debug['_m_ext_area']['end'] = self._io.pos()
- self._io.seek(_pos)
-
- return self._m_ext_area if hasattr(self, '_m_ext_area') else None
-
-
- class TgaExtArea(KaitaiStruct):
- SEQ_FIELDS = ["ext_area_size", "author_name", "comments", "timestamp", "job_id", "job_time", "software_id", "software_version", "key_color", "pixel_aspect_ratio", "gamma_value", "color_corr_ofs", "postage_stamp_ofs", "scan_line_ofs", "attributes"]
- 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['ext_area_size']['start'] = self._io.pos()
- self.ext_area_size = self._io.read_u2le()
- self._debug['ext_area_size']['end'] = self._io.pos()
- self._debug['author_name']['start'] = self._io.pos()
- self.author_name = (self._io.read_bytes(41)).decode(u"ASCII")
- self._debug['author_name']['end'] = self._io.pos()
- self._debug['comments']['start'] = self._io.pos()
- self.comments = [None] * (4)
- for i in range(4):
- if not 'arr' in self._debug['comments']:
- self._debug['comments']['arr'] = []
- self._debug['comments']['arr'].append({'start': self._io.pos()})
- self.comments[i] = (self._io.read_bytes(81)).decode(u"ASCII")
- self._debug['comments']['arr'][i]['end'] = self._io.pos()
-
- self._debug['comments']['end'] = self._io.pos()
- self._debug['timestamp']['start'] = self._io.pos()
- self.timestamp = self._io.read_bytes(12)
- self._debug['timestamp']['end'] = self._io.pos()
- self._debug['job_id']['start'] = self._io.pos()
- self.job_id = (self._io.read_bytes(41)).decode(u"ASCII")
- self._debug['job_id']['end'] = self._io.pos()
- self._debug['job_time']['start'] = self._io.pos()
- self.job_time = (self._io.read_bytes(6)).decode(u"ASCII")
- self._debug['job_time']['end'] = self._io.pos()
- self._debug['software_id']['start'] = self._io.pos()
- self.software_id = (self._io.read_bytes(41)).decode(u"ASCII")
- self._debug['software_id']['end'] = self._io.pos()
- self._debug['software_version']['start'] = self._io.pos()
- self.software_version = self._io.read_bytes(3)
- self._debug['software_version']['end'] = self._io.pos()
- self._debug['key_color']['start'] = self._io.pos()
- self.key_color = self._io.read_u4le()
- self._debug['key_color']['end'] = self._io.pos()
- self._debug['pixel_aspect_ratio']['start'] = self._io.pos()
- self.pixel_aspect_ratio = self._io.read_u4le()
- self._debug['pixel_aspect_ratio']['end'] = self._io.pos()
- self._debug['gamma_value']['start'] = self._io.pos()
- self.gamma_value = self._io.read_u4le()
- self._debug['gamma_value']['end'] = self._io.pos()
- self._debug['color_corr_ofs']['start'] = self._io.pos()
- self.color_corr_ofs = self._io.read_u4le()
- self._debug['color_corr_ofs']['end'] = self._io.pos()
- self._debug['postage_stamp_ofs']['start'] = self._io.pos()
- self.postage_stamp_ofs = self._io.read_u4le()
- self._debug['postage_stamp_ofs']['end'] = self._io.pos()
- self._debug['scan_line_ofs']['start'] = self._io.pos()
- self.scan_line_ofs = self._io.read_u4le()
- self._debug['scan_line_ofs']['end'] = self._io.pos()
- self._debug['attributes']['start'] = self._io.pos()
- self.attributes = self._io.read_u1()
- self._debug['attributes']['end'] = self._io.pos()
-
-
- @property
- def footer(self):
- if hasattr(self, '_m_footer'):
- return self._m_footer if hasattr(self, '_m_footer') else None
-
- _pos = self._io.pos()
- self._io.seek((self._io.size() - 26))
- self._debug['_m_footer']['start'] = self._io.pos()
- self._m_footer = self._root.TgaFooter(self._io, self, self._root)
- self._m_footer._read()
- self._debug['_m_footer']['end'] = self._io.pos()
- self._io.seek(_pos)
- return self._m_footer if hasattr(self, '_m_footer') else None
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/wmf.py b/python/examples/kaitai/kaitai_struct_formats/image/wmf.py
deleted file mode 100644
index e0342b3c..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/wmf.py
+++ /dev/null
@@ -1,460 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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 Wmf(KaitaiStruct):
- """WMF (Windows Metafile) is a relatively early vector image format
- introduced for Microsoft Windows in 1990.
-
- Inside, it provides a serialized list of Windows GDI (Graphics
- Device Interface) function calls, which, if played back, result in
- an image being drawn on a given surface (display, off-screen buffer,
- printer, etc).
-
- .. seealso::
- Source - http://www.digitalpreservation.gov/formats/digformatspecs/WindowsMetafileFormat(wmf)Specification.pdf
- """
-
- class Func(Enum):
- eof = 0
- savedc = 30
- realizepalette = 53
- setpalentries = 55
- createpalette = 247
- setbkmode = 258
- setmapmode = 259
- setrop2 = 260
- setrelabs = 261
- setpolyfillmode = 262
- setstretchbltmode = 263
- settextcharextra = 264
- restoredc = 295
- invertregion = 298
- paintregion = 299
- selectclipregion = 300
- selectobject = 301
- settextalign = 302
- resizepalette = 313
- dibcreatepatternbrush = 322
- setlayout = 329
- deleteobject = 496
- createpatternbrush = 505
- setbkcolor = 513
- settextcolor = 521
- settextjustification = 522
- setwindoworg = 523
- setwindowext = 524
- setviewportorg = 525
- setviewportext = 526
- offsetwindoworg = 527
- offsetviewportorg = 529
- lineto = 531
- moveto = 532
- offsetcliprgn = 544
- fillregion = 552
- setmapperflags = 561
- selectpalette = 564
- createpenindirect = 762
- createfontindirect = 763
- createbrushindirect = 764
- polygon = 804
- polyline = 805
- scalewindowext = 1040
- scaleviewportext = 1042
- excludecliprect = 1045
- intersectcliprect = 1046
- ellipse = 1048
- floodfill = 1049
- rectangle = 1051
- setpixel = 1055
- frameregion = 1065
- animatepalette = 1078
- textout = 1313
- polypolygon = 1336
- extfloodfill = 1352
- roundrect = 1564
- patblt = 1565
- escape = 1574
- createregion = 1791
- arc = 2071
- pie = 2074
- chord = 2096
- bitblt = 2338
- dibbitblt = 2368
- exttextout = 2610
- stretchblt = 2851
- dibstretchblt = 2881
- setdibtodev = 3379
- stretchdib = 3907
-
- class BinRasterOp(Enum):
- black = 1
- notmergepen = 2
- masknotpen = 3
- notcopypen = 4
- maskpennot = 5
- not = 6
- xorpen = 7
- notmaskpen = 8
- maskpen = 9
- notxorpen = 10
- nop = 11
- mergenotpen = 12
- copypen = 13
- mergepennot = 14
- mergepen = 15
- white = 16
-
- class MixMode(Enum):
- transparent = 1
- opaque = 2
-
- class PolyFillMode(Enum):
- alternate = 1
- winding = 2
- SEQ_FIELDS = ["special_header", "header", "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['special_header']['start'] = self._io.pos()
- self.special_header = self._root.SpecialHeader(self._io, self, self._root)
- self.special_header._read()
- self._debug['special_header']['end'] = self._io.pos()
- self._debug['header']['start'] = self._io.pos()
- self.header = self._root.Header(self._io, self, self._root)
- self.header._read()
- self._debug['header']['end'] = self._io.pos()
- self._debug['records']['start'] = self._io.pos()
- self.records = []
- i = 0
- while True:
- if not 'arr' in self._debug['records']:
- self._debug['records']['arr'] = []
- self._debug['records']['arr'].append({'start': self._io.pos()})
- _t_records = self._root.Record(self._io, self, self._root)
- _t_records._read()
- _ = _t_records
- self.records.append(_)
- self._debug['records']['arr'][len(self.records) - 1]['end'] = self._io.pos()
- if _.function == self._root.Func.eof:
- break
- i += 1
- self._debug['records']['end'] = self._io.pos()
-
- class ParamsSetwindoworg(KaitaiStruct):
- SEQ_FIELDS = ["y", "x"]
- 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['y']['start'] = self._io.pos()
- self.y = self._io.read_s2le()
- self._debug['y']['end'] = self._io.pos()
- self._debug['x']['start'] = self._io.pos()
- self.x = self._io.read_s2le()
- self._debug['x']['end'] = self._io.pos()
-
-
- class ParamsSetbkmode(KaitaiStruct):
- SEQ_FIELDS = ["bk_mode"]
- 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['bk_mode']['start'] = self._io.pos()
- self.bk_mode = KaitaiStream.resolve_enum(self._root.MixMode, self._io.read_u2le())
- self._debug['bk_mode']['end'] = self._io.pos()
-
-
- class PointS(KaitaiStruct):
- SEQ_FIELDS = ["x", "y"]
- 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_s2le()
- self._debug['x']['end'] = self._io.pos()
- self._debug['y']['start'] = self._io.pos()
- self.y = self._io.read_s2le()
- self._debug['y']['end'] = self._io.pos()
-
-
- class ParamsSetwindowext(KaitaiStruct):
- SEQ_FIELDS = ["y", "x"]
- 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['y']['start'] = self._io.pos()
- self.y = self._io.read_s2le()
- self._debug['y']['end'] = self._io.pos()
- self._debug['x']['start'] = self._io.pos()
- self.x = self._io.read_s2le()
- self._debug['x']['end'] = self._io.pos()
-
-
- class ParamsPolygon(KaitaiStruct):
- SEQ_FIELDS = ["num_points", "points"]
- 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['num_points']['start'] = self._io.pos()
- self.num_points = self._io.read_s2le()
- self._debug['num_points']['end'] = self._io.pos()
- self._debug['points']['start'] = self._io.pos()
- self.points = [None] * (self.num_points)
- for i in range(self.num_points):
- if not 'arr' in self._debug['points']:
- self._debug['points']['arr'] = []
- self._debug['points']['arr'].append({'start': self._io.pos()})
- _t_points = self._root.PointS(self._io, self, self._root)
- _t_points._read()
- self.points[i] = _t_points
- self._debug['points']['arr'][i]['end'] = self._io.pos()
-
- self._debug['points']['end'] = self._io.pos()
-
-
- class Header(KaitaiStruct):
-
- class MetafileType(Enum):
- memory_metafile = 1
- disk_metafile = 2
- SEQ_FIELDS = ["metafile_type", "header_size", "version", "size", "number_of_objects", "max_record", "number_of_members"]
- 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['metafile_type']['start'] = self._io.pos()
- self.metafile_type = KaitaiStream.resolve_enum(self._root.Header.MetafileType, self._io.read_u2le())
- self._debug['metafile_type']['end'] = self._io.pos()
- self._debug['header_size']['start'] = self._io.pos()
- self.header_size = self._io.read_u2le()
- self._debug['header_size']['end'] = self._io.pos()
- self._debug['version']['start'] = self._io.pos()
- self.version = self._io.read_u2le()
- self._debug['version']['end'] = self._io.pos()
- self._debug['size']['start'] = self._io.pos()
- self.size = self._io.read_u4le()
- self._debug['size']['end'] = self._io.pos()
- self._debug['number_of_objects']['start'] = self._io.pos()
- self.number_of_objects = self._io.read_u2le()
- self._debug['number_of_objects']['end'] = self._io.pos()
- self._debug['max_record']['start'] = self._io.pos()
- self.max_record = self._io.read_u4le()
- self._debug['max_record']['end'] = self._io.pos()
- self._debug['number_of_members']['start'] = self._io.pos()
- self.number_of_members = self._io.read_u2le()
- self._debug['number_of_members']['end'] = self._io.pos()
-
-
- class ColorRef(KaitaiStruct):
- SEQ_FIELDS = ["red", "green", "blue", "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['red']['start'] = self._io.pos()
- self.red = self._io.read_u1()
- self._debug['red']['end'] = self._io.pos()
- self._debug['green']['start'] = self._io.pos()
- self.green = self._io.read_u1()
- self._debug['green']['end'] = self._io.pos()
- self._debug['blue']['start'] = self._io.pos()
- self.blue = self._io.read_u1()
- self._debug['blue']['end'] = self._io.pos()
- self._debug['reserved']['start'] = self._io.pos()
- self.reserved = self._io.read_u1()
- self._debug['reserved']['end'] = self._io.pos()
-
-
- class ParamsSetrop2(KaitaiStruct):
- SEQ_FIELDS = ["draw_mode"]
- 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['draw_mode']['start'] = self._io.pos()
- self.draw_mode = KaitaiStream.resolve_enum(self._root.BinRasterOp, self._io.read_u2le())
- self._debug['draw_mode']['end'] = self._io.pos()
-
-
- class ParamsSetpolyfillmode(KaitaiStruct):
- SEQ_FIELDS = ["poly_fill_mode"]
- 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['poly_fill_mode']['start'] = self._io.pos()
- self.poly_fill_mode = KaitaiStream.resolve_enum(self._root.PolyFillMode, self._io.read_u2le())
- self._debug['poly_fill_mode']['end'] = self._io.pos()
-
-
- class ParamsPolyline(KaitaiStruct):
- SEQ_FIELDS = ["num_points", "points"]
- 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['num_points']['start'] = self._io.pos()
- self.num_points = self._io.read_s2le()
- self._debug['num_points']['end'] = self._io.pos()
- self._debug['points']['start'] = self._io.pos()
- self.points = [None] * (self.num_points)
- for i in range(self.num_points):
- if not 'arr' in self._debug['points']:
- self._debug['points']['arr'] = []
- self._debug['points']['arr'].append({'start': self._io.pos()})
- _t_points = self._root.PointS(self._io, self, self._root)
- _t_points._read()
- self.points[i] = _t_points
- self._debug['points']['arr'][i]['end'] = self._io.pos()
-
- self._debug['points']['end'] = self._io.pos()
-
-
- class SpecialHeader(KaitaiStruct):
- SEQ_FIELDS = ["magic", "handle", "left", "top", "right", "bottom", "inch", "reserved", "checksum"]
- 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['magic']['start'] = self._io.pos()
- self.magic = self._io.ensure_fixed_contents(b"\xD7\xCD\xC6\x9A")
- self._debug['magic']['end'] = self._io.pos()
- self._debug['handle']['start'] = self._io.pos()
- self.handle = self._io.ensure_fixed_contents(b"\x00\x00")
- self._debug['handle']['end'] = self._io.pos()
- self._debug['left']['start'] = self._io.pos()
- self.left = self._io.read_s2le()
- self._debug['left']['end'] = self._io.pos()
- self._debug['top']['start'] = self._io.pos()
- self.top = self._io.read_s2le()
- self._debug['top']['end'] = self._io.pos()
- self._debug['right']['start'] = self._io.pos()
- self.right = self._io.read_s2le()
- self._debug['right']['end'] = self._io.pos()
- self._debug['bottom']['start'] = self._io.pos()
- self.bottom = self._io.read_s2le()
- self._debug['bottom']['end'] = self._io.pos()
- self._debug['inch']['start'] = self._io.pos()
- self.inch = self._io.read_u2le()
- self._debug['inch']['end'] = self._io.pos()
- 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['checksum']['start'] = self._io.pos()
- self.checksum = self._io.read_u2le()
- self._debug['checksum']['end'] = self._io.pos()
-
-
- class Record(KaitaiStruct):
- SEQ_FIELDS = ["size", "function", "params"]
- 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_u4le()
- self._debug['size']['end'] = self._io.pos()
- self._debug['function']['start'] = self._io.pos()
- self.function = KaitaiStream.resolve_enum(self._root.Func, self._io.read_u2le())
- self._debug['function']['end'] = self._io.pos()
- self._debug['params']['start'] = self._io.pos()
- _on = self.function
- if _on == self._root.Func.setbkmode:
- self._raw_params = self._io.read_bytes(((self.size - 3) * 2))
- io = KaitaiStream(BytesIO(self._raw_params))
- self.params = self._root.ParamsSetbkmode(io, self, self._root)
- self.params._read()
- elif _on == self._root.Func.polygon:
- self._raw_params = self._io.read_bytes(((self.size - 3) * 2))
- io = KaitaiStream(BytesIO(self._raw_params))
- self.params = self._root.ParamsPolygon(io, self, self._root)
- self.params._read()
- elif _on == self._root.Func.setbkcolor:
- self._raw_params = self._io.read_bytes(((self.size - 3) * 2))
- io = KaitaiStream(BytesIO(self._raw_params))
- self.params = self._root.ColorRef(io, self, self._root)
- self.params._read()
- elif _on == self._root.Func.setpolyfillmode:
- self._raw_params = self._io.read_bytes(((self.size - 3) * 2))
- io = KaitaiStream(BytesIO(self._raw_params))
- self.params = self._root.ParamsSetpolyfillmode(io, self, self._root)
- self.params._read()
- elif _on == self._root.Func.setwindoworg:
- self._raw_params = self._io.read_bytes(((self.size - 3) * 2))
- io = KaitaiStream(BytesIO(self._raw_params))
- self.params = self._root.ParamsSetwindoworg(io, self, self._root)
- self.params._read()
- elif _on == self._root.Func.setrop2:
- self._raw_params = self._io.read_bytes(((self.size - 3) * 2))
- io = KaitaiStream(BytesIO(self._raw_params))
- self.params = self._root.ParamsSetrop2(io, self, self._root)
- self.params._read()
- elif _on == self._root.Func.setwindowext:
- self._raw_params = self._io.read_bytes(((self.size - 3) * 2))
- io = KaitaiStream(BytesIO(self._raw_params))
- self.params = self._root.ParamsSetwindowext(io, self, self._root)
- self.params._read()
- elif _on == self._root.Func.polyline:
- self._raw_params = self._io.read_bytes(((self.size - 3) * 2))
- io = KaitaiStream(BytesIO(self._raw_params))
- self.params = self._root.ParamsPolyline(io, self, self._root)
- self.params._read()
- else:
- self.params = self._io.read_bytes(((self.size - 3) * 2))
- self._debug['params']['end'] = self._io.pos()
-
-
-
diff --git a/python/examples/kaitai/kaitai_struct_formats/image/xwd.py b/python/examples/kaitai/kaitai_struct_formats/image/xwd.py
deleted file mode 100644
index 8ec1ff03..00000000
--- a/python/examples/kaitai/kaitai_struct_formats/image/xwd.py
+++ /dev/null
@@ -1,189 +0,0 @@
-from __future__ import absolute_import
-# 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
-from enum import Enum
-import collections
-
-
-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 Xwd(KaitaiStruct):
- """xwd is a file format written by eponymous X11 screen capture
- application (xwd stands for "X Window Dump"). Typically, an average
- user transforms xwd format into something more widespread by any of
- `xwdtopnm` and `pnmto...` utilities right away.
-
- xwd format itself provides a raw uncompressed bitmap with some
- metainformation, like pixel format, width, height, bit depth,
- etc. Note that technically format includes machine-dependent fields
- and thus is probably a poor choice for true cross-platform usage.
- """
-
- class PixmapFormat(Enum):
- x_y_bitmap = 0
- x_y_pixmap = 1
- z_pixmap = 2
-
- class ByteOrder(Enum):
- le = 0
- be = 1
-
- class VisualClass(Enum):
- static_gray = 0
- gray_scale = 1
- static_color = 2
- pseudo_color = 3
- true_color = 4
- direct_color = 5
- SEQ_FIELDS = ["header_size", "hdr", "color_map"]
- 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_size']['start'] = self._io.pos()
- self.header_size = self._io.read_u4be()
- self._debug['header_size']['end'] = self._io.pos()
- self._debug['hdr']['start'] = self._io.pos()
- self._raw_hdr = self._io.read_bytes((self.header_size - 4))
- io = KaitaiStream(BytesIO(self._raw_hdr))
- self.hdr = self._root.Header(io, self, self._root)
- self.hdr._read()
- self._debug['hdr']['end'] = self._io.pos()
- self._debug['color_map']['start'] = self._io.pos()
- self._raw_color_map = [None] * (self.hdr.color_map_entries)
- self.color_map = [None] * (self.hdr.color_map_entries)
- for i in range(self.hdr.color_map_entries):
- if not 'arr' in self._debug['color_map']:
- self._debug['color_map']['arr'] = []
- self._debug['color_map']['arr'].append({'start': self._io.pos()})
- self._raw_color_map[i] = self._io.read_bytes(12)
- io = KaitaiStream(BytesIO(self._raw_color_map[i]))
- _t_color_map = self._root.ColorMapEntry(io, self, self._root)
- _t_color_map._read()
- self.color_map[i] = _t_color_map
- self._debug['color_map']['arr'][i]['end'] = self._io.pos()
-
- self._debug['color_map']['end'] = self._io.pos()
-
- class Header(KaitaiStruct):
- SEQ_FIELDS = ["file_version", "pixmap_format", "pixmap_depth", "pixmap_width", "pixmap_height", "x_offset", "byte_order", "bitmap_unit", "bitmap_bit_order", "bitmap_pad", "bits_per_pixel", "bytes_per_line", "visual_class", "red_mask", "green_mask", "blue_mask", "bits_per_rgb", "number_of_colors", "color_map_entries", "window_width", "window_height", "window_x", "window_y", "window_border_width", "creator"]
- 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['file_version']['start'] = self._io.pos()
- self.file_version = self._io.read_u4be()
- self._debug['file_version']['end'] = self._io.pos()
- self._debug['pixmap_format']['start'] = self._io.pos()
- self.pixmap_format = KaitaiStream.resolve_enum(self._root.PixmapFormat, self._io.read_u4be())
- self._debug['pixmap_format']['end'] = self._io.pos()
- self._debug['pixmap_depth']['start'] = self._io.pos()
- self.pixmap_depth = self._io.read_u4be()
- self._debug['pixmap_depth']['end'] = self._io.pos()
- self._debug['pixmap_width']['start'] = self._io.pos()
- self.pixmap_width = self._io.read_u4be()
- self._debug['pixmap_width']['end'] = self._io.pos()
- self._debug['pixmap_height']['start'] = self._io.pos()
- self.pixmap_height = self._io.read_u4be()
- self._debug['pixmap_height']['end'] = self._io.pos()
- self._debug['x_offset']['start'] = self._io.pos()
- self.x_offset = self._io.read_u4be()
- self._debug['x_offset']['end'] = self._io.pos()
- self._debug['byte_order']['start'] = self._io.pos()
- self.byte_order = KaitaiStream.resolve_enum(self._root.ByteOrder, self._io.read_u4be())
- self._debug['byte_order']['end'] = self._io.pos()
- self._debug['bitmap_unit']['start'] = self._io.pos()
- self.bitmap_unit = self._io.read_u4be()
- self._debug['bitmap_unit']['end'] = self._io.pos()
- self._debug['bitmap_bit_order']['start'] = self._io.pos()
- self.bitmap_bit_order = self._io.read_u4be()
- self._debug['bitmap_bit_order']['end'] = self._io.pos()
- self._debug['bitmap_pad']['start'] = self._io.pos()
- self.bitmap_pad = self._io.read_u4be()
- self._debug['bitmap_pad']['end'] = self._io.pos()
- self._debug['bits_per_pixel']['start'] = self._io.pos()
- self.bits_per_pixel = self._io.read_u4be()
- self._debug['bits_per_pixel']['end'] = self._io.pos()
- self._debug['bytes_per_line']['start'] = self._io.pos()
- self.bytes_per_line = self._io.read_u4be()
- self._debug['bytes_per_line']['end'] = self._io.pos()
- self._debug['visual_class']['start'] = self._io.pos()
- self.visual_class = KaitaiStream.resolve_enum(self._root.VisualClass, self._io.read_u4be())
- self._debug['visual_class']['end'] = self._io.pos()
- self._debug['red_mask']['start'] = self._io.pos()
- self.red_mask = self._io.read_u4be()
- self._debug['red_mask']['end'] = self._io.pos()
- self._debug['green_mask']['start'] = self._io.pos()
- self.green_mask = self._io.read_u4be()
- self._debug['green_mask']['end'] = self._io.pos()
- self._debug['blue_mask']['start'] = self._io.pos()
- self.blue_mask = self._io.read_u4be()
- self._debug['blue_mask']['end'] = self._io.pos()
- self._debug['bits_per_rgb']['start'] = self._io.pos()
- self.bits_per_rgb = self._io.read_u4be()
- self._debug['bits_per_rgb']['end'] = self._io.pos()
- self._debug['number_of_colors']['start'] = self._io.pos()
- self.number_of_colors = self._io.read_u4be()
- self._debug['number_of_colors']['end'] = self._io.pos()
- self._debug['color_map_entries']['start'] = self._io.pos()
- self.color_map_entries = self._io.read_u4be()
- self._debug['color_map_entries']['end'] = self._io.pos()
- self._debug['window_width']['start'] = self._io.pos()
- self.window_width = self._io.read_u4be()
- self._debug['window_width']['end'] = self._io.pos()
- self._debug['window_height']['start'] = self._io.pos()
- self.window_height = self._io.read_u4be()
- self._debug['window_height']['end'] = self._io.pos()
- self._debug['window_x']['start'] = self._io.pos()
- self.window_x = self._io.read_s4be()
- self._debug['window_x']['end'] = self._io.pos()
- self._debug['window_y']['start'] = self._io.pos()
- self.window_y = self._io.read_s4be()
- self._debug['window_y']['end'] = self._io.pos()
- self._debug['window_border_width']['start'] = self._io.pos()
- self.window_border_width = self._io.read_u4be()
- self._debug['window_border_width']['end'] = self._io.pos()
- self._debug['creator']['start'] = self._io.pos()
- self.creator = (self._io.read_bytes_term(0, False, True, True)).decode(u"UTF-8")
- self._debug['creator']['end'] = self._io.pos()
-
-
- class ColorMapEntry(KaitaiStruct):
- SEQ_FIELDS = ["entry_number", "red", "green", "blue", "flags", "padding"]
- 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['entry_number']['start'] = self._io.pos()
- self.entry_number = self._io.read_u4be()
- self._debug['entry_number']['end'] = self._io.pos()
- self._debug['red']['start'] = self._io.pos()
- self.red = self._io.read_u2be()
- self._debug['red']['end'] = self._io.pos()
- self._debug['green']['start'] = self._io.pos()
- self.green = self._io.read_u2be()
- self._debug['green']['end'] = self._io.pos()
- self._debug['blue']['start'] = self._io.pos()
- self.blue = self._io.read_u2be()
- self._debug['blue']['end'] = self._io.pos()
- self._debug['flags']['start'] = self._io.pos()
- self.flags = self._io.read_u1()
- self._debug['flags']['end'] = self._io.pos()
- self._debug['padding']['start'] = self._io.pos()
- self.padding = self._io.read_u1()
- self._debug['padding']['end'] = self._io.pos()
-
-
-