28 std::vector<bool> segments_done;
29 int seg_height = 0, seg_width = 0;
32 void init(
int bit_depth,
int max_seg,
int segment_width,
int segment_height)
35 segments_done.resize(seg_count,
false);
37 image =
image::Image(bit_depth, segment_width, segment_height * max_seg, 1);
38 seg_height = segment_height;
39 seg_width = segment_width;
44 FY4xSegmentedImageDecoder(
XRITFile &file)
50 init(image_structure_record.bit_per_pixel > 8 ? 16 : 8,
51 image_structure_record.total_segment_count,
52 image_structure_record.columns_count,
53 image_structure_record.lines_count);
58 if (segc >= seg_count || segc < 0)
68 image::imemcpy(image, seg_width * p, data, 0, data.
size());
69 segments_done[segc] =
true;
71 catch (std::exception &e)
73 logger->critical(
"Weird FY-4x stuff? %s", e.what());
83 pushSegment(img, image_structure_record.current_segment_pos - 1, image_structure_record.current_segment_line_pos);
89 for (
int i = 0; i < seg_count; i++)
90 complete = complete && segments_done[i];
96 for (
int i = 0; i < seg_count; i++)
97 segments_done[i] =
false;
103 for (
int i = 0; i < seg_count; i++)
104 if (segments_done[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