Handle all data types when converting to QImage

This commit is contained in:
2024-10-29 19:43:16 +01:00
parent 8f7f527732
commit 24eea573e6
+12 -2
View File
@@ -709,6 +709,7 @@ void ConvertRunable::run()
{ {
QImage::Format format = QImage::Format_Invalid; QImage::Format format = QImage::Format_Invalid;
int width = rawimage->widthBytes(); int width = rawimage->widthBytes();
switch(rawimage->type()) switch(rawimage->type())
{ {
case RawImage::UINT8: case RawImage::UINT8:
@@ -722,9 +723,18 @@ void ConvertRunable::run()
else if(rawimage->channels() == 4)format = QImage::Format_RGBA64; else if(rawimage->channels() == 4)format = QImage::Format_RGBA64;
width *= 2; width *= 2;
break; break;
default: case RawImage::FLOAT16:
return; 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; if(format == QImage::Format_Invalid)return;
QImage qimage(rawimage->width(), rawimage->height(), format); QImage qimage(rawimage->width(), rawimage->height(), format);