genesys: Add model flag for inverted output

merge-requests/463/merge
Povilas Kanapickas 2020-05-09 13:29:53 +03:00
rodzic ab1d86d74a
commit 09eaba9606
2 zmienionych plików z 11 dodań i 0 usunięć

Wyświetl plik

@ -507,6 +507,9 @@ enum class ModelFlag : unsigned
// the head must be reparked between shading scans
SHADING_REPARK = 1 << 18,
// the scanner outputs inverted pixel data
INVERT_PIXEL_DATA = 1 << 19,
// the scanner outputs 16-bit data that is byte-inverted
SWAP_16BIT_DATA = 1 << 20,

Wyświetl plik

@ -544,6 +544,10 @@ Image read_unshuffled_image_from_scanner(Genesys_Device* dev, const ScanSession&
pipeline.push_node<ImagePipelineNodeSwap16BitEndian>();
}
if (has_flag(dev->model->flags, ModelFlag::INVERT_PIXEL_DATA)) {
pipeline.push_node<ImagePipelineNodeInvert>();
}
#ifdef WORDS_BIGENDIAN
if (session.params.depth == 16) {
pipeline.push_node<ImagePipelineNodeSwap16BitEndian>();
@ -1192,6 +1196,10 @@ void build_image_pipeline(Genesys_Device* dev, const ScanSession& session)
"_1_after_swap.pnm");
}
if (has_flag(dev->model->flags, ModelFlag::INVERT_PIXEL_DATA)) {
dev->pipeline.push_node<ImagePipelineNodeInvert>();
}
if (dev->model->is_cis && session.params.channels == 3) {
dev->pipeline.push_node<ImagePipelineNodeMergeMonoLines>(dev->model->line_mode_color_order);
}