Generalized serializer

This commit is contained in:
2023-12-11 06:49:24 +01:00
parent 75913b83eb
commit f1935526a7
52 changed files with 579 additions and 557 deletions
+23 -4
View File
@@ -34,9 +34,28 @@ FrameTransformation::FrameTransformation(const DiffractionExperiment &in_experim
}
}
size_t FrameTransformation::SaveCompressedImage(void *output) {
return compressor.Compress((char *) output, precompression_buffer.data(),
experiment.GetPixelsNum(), pixel_depth);
CompressedImage FrameTransformation::GetCompressedImage() {
CompressedImage image{};
if (experiment.GetCompressionAlgorithm() == CompressionAlgorithm::NO_COMPRESSION) {
image.data = (uint8_t *) precompression_buffer.data();
image.size = experiment.GetPixelsNum() * experiment.GetPixelDepth();
} else {
compressed_buffer.resize(MaxCompressedSize(experiment.GetCompressionAlgorithm(),
experiment.GetPixelsNum(),
experiment.GetPixelDepth()));
image.data = (uint8_t *) compressed_buffer.data();
image.size = compressor.Compress(compressed_buffer.data(), precompression_buffer.data(),
experiment.GetPixelsNum(), experiment.GetPixelDepth());
}
image.xpixel = experiment.GetXPixelsNum();
image.ypixel = experiment.GetYPixelsNum();
image.algorithm = experiment.GetCompressionAlgorithm();
image.pixel_depth_bytes = experiment.GetPixelDepth();
image.pixel_is_signed = pixel_signed;
image.pixel_is_float = false;
image.channel = "default";
return image;
}
void FrameTransformation::ProcessModule(const void *input, uint16_t module_number, int data_stream) {
@@ -80,6 +99,6 @@ void FrameTransformation::ProcessModule(const void *input, uint16_t module_numbe
}
}
const void *FrameTransformation::GetPreviewImage() const {
const void *FrameTransformation::GetImage() const {
return precompression_buffer.data();
}