Handle all data types when converting to QImage
This commit is contained in:
+12
-2
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user