71 lines
2.4 KiB
C#
71 lines
2.4 KiB
C#
namespace Quik.Media
|
|
{
|
|
public static class Extensions
|
|
{
|
|
public static bool IsU8(this QImageFormat format)
|
|
{
|
|
switch (format)
|
|
{
|
|
case QImageFormat.AlphaU8:
|
|
case QImageFormat.RedU8:
|
|
case QImageFormat.RaU8:
|
|
case QImageFormat.RgbU8:
|
|
case QImageFormat.RgbaU8:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static bool IsFloat(this QImageFormat format)
|
|
{
|
|
switch (format)
|
|
{
|
|
case QImageFormat.AlphaF:
|
|
case QImageFormat.RedF:
|
|
case QImageFormat.RaF:
|
|
case QImageFormat.RgbF:
|
|
case QImageFormat.RgbaF:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static int BitsPerPixel(this QImageFormat format)
|
|
{
|
|
switch (format)
|
|
{
|
|
case QImageFormat.AlphaU8: return sizeof(byte);
|
|
case QImageFormat.RedU8: return sizeof(byte);
|
|
case QImageFormat.RaU8: return 2 * sizeof(byte);
|
|
case QImageFormat.RgbU8: return 3 * sizeof(byte);
|
|
case QImageFormat.RgbaU8: return 4 * sizeof(byte);
|
|
case QImageFormat.AlphaF: return sizeof(float);
|
|
case QImageFormat.RedF: return sizeof(float);
|
|
case QImageFormat.RaF: return 2 * sizeof(float);
|
|
case QImageFormat.RgbF: return 3 * sizeof(float);
|
|
case QImageFormat.RgbaF: return 4 * sizeof(float);
|
|
default: return 0;
|
|
}
|
|
}
|
|
|
|
public static int Channels(this QImageFormat format)
|
|
{
|
|
switch (format)
|
|
{
|
|
case QImageFormat.AlphaU8: return 1;
|
|
case QImageFormat.RedU8: return 1;
|
|
case QImageFormat.RaU8: return 2;
|
|
case QImageFormat.RgbU8: return 3;
|
|
case QImageFormat.RgbaU8: return 4;
|
|
case QImageFormat.AlphaF: return 1;
|
|
case QImageFormat.RedF: return 1;
|
|
case QImageFormat.RaF: return 2;
|
|
case QImageFormat.RgbF: return 3;
|
|
case QImageFormat.RgbaF: return 4;
|
|
default: return 0;
|
|
}
|
|
}
|
|
}
|
|
} |