From 24eea573e62961a23e0d9d4d51c3751e8d1c95c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Tue, 29 Oct 2024 19:43:16 +0100 Subject: [PATCH] Handle all data types when converting to QImage --- loadrunable.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/loadrunable.cpp b/loadrunable.cpp index 395ccd7..c75a918 100644 --- a/loadrunable.cpp +++ b/loadrunable.cpp @@ -709,6 +709,7 @@ void ConvertRunable::run() { QImage::Format format = QImage::Format_Invalid; int width = rawimage->widthBytes(); + switch(rawimage->type()) { case RawImage::UINT8: @@ -722,9 +723,18 @@ void ConvertRunable::run() else if(rawimage->channels() == 4)format = QImage::Format_RGBA64; width *= 2; break; - default: - return; + case RawImage::FLOAT16: + case RawImage::FLOAT32: + case RawImage::FLOAT64: + case RawImage::UINT32: + rawimage->convertToType(RawImage::UINT16); + if(rawimage->channels() == 1)format = QImage::Format_Grayscale16; + else if(rawimage->channels() == 3)format = QImage::Format_RGBX64; + else if(rawimage->channels() == 4)format = QImage::Format_RGBA64; + width *= 2; + break; } + if(format == QImage::Format_Invalid)return; QImage qimage(rawimage->width(), rawimage->height(), format);