Add Image::sampleFormatEnum<T>()

This commit is contained in:
2023-01-30 11:49:02 +01:00
parent f10b591d7a
commit ed7e2c1a78
2 changed files with 17 additions and 2 deletions
+15
View File
@@ -160,6 +160,8 @@ public:
static PixelStorage pixelStorageEnum(const QString &storage);
static QString pixelStorageString(PixelStorage storage);
static SampleFormat sampleFormatEnum(const QString &format);
template<typename T>
static SampleFormat sampleFormatEnum();
static QString sampleFormatString(SampleFormat format);
static ColorSpace colorSpaceEnum(const QString &colorSpace);
static QString colorSpaceString(ColorSpace colorSpace);
@@ -302,6 +304,19 @@ public:
const char* what() const noexcept { return _msg.c_str(); }
};
template<typename T>
Image::SampleFormat Image::sampleFormatEnum()
{
if(std::is_same<T, LibXISF::UInt8>::value)return Image::UInt8;
if(std::is_same<T, LibXISF::UInt16>::value)return Image::UInt16;
if(std::is_same<T, LibXISF::UInt32>::value)return Image::UInt32;
if(std::is_same<T, LibXISF::UInt64>::value)return Image::UInt64;
if(std::is_same<T, LibXISF::Float32>::value)return Image::Float32;
if(std::is_same<T, LibXISF::Float64>::value)return Image::Float64;
if(std::is_same<T, LibXISF::Complex32>::value)return Image::Complex32;
if(std::is_same<T, LibXISF::Complex64>::value)return Image::Complex64;
}
}
Q_DECLARE_METATYPE(LibXISF::Boolean);