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);