26 std::vector<bool> segments_done;
27 int seg_height = 0, seg_width = 0;
30 void init(
int bit_depth,
int max_seg,
int segment_width,
int segment_height)
33 segments_done.resize(seg_count,
false);
35 image =
image::Image(bit_depth, segment_width, segment_height * max_seg, 1);
36 seg_height = segment_height;
37 seg_width = segment_width;
42 MSGSegmentedImageDecoder(
XRITFile &file)
47 init(image_structure_record.bit_per_pixel > 8 ? 16 : 8,
48 segment_id_header.planned_end_segment - segment_id_header.planned_start_segment + 1,
49 image_structure_record.columns_count,
50 image_structure_record.lines_count);
55 if (segc >= seg_count || segc < 0)
57 if (data.
size() != seg_height * seg_width)
59 logger->error(
"Image of the wrong size!");
62 image::imemcpy(image, (seg_height * seg_width) * segc, data, 0, seg_height * seg_width);
63 segments_done[segc] =
true;
70 pushSegment(img, segment_id_header.segment_sequence_number - segment_id_header.planned_start_segment);
76 for (
int i = 0; i < seg_count; i++)
77 complete = complete && segments_done[i];
83 for (
int i = 0; i < seg_count; i++)
84 segments_done[i] =
false;
90 for (
int i = 0; i < seg_count; i++)
image::Image getImageFromXRITFile(xrit_file_type_t type, XRITFile &file)
This converts a xRIT file (given its type) into an image object handling missing-specific details and...
Definition get_img.h:28