Generalized serializer
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user