public static int GetHeightSubsample(this ColorSpaces colorSpace) { if (!colorSpace.IsRealPlanar()) { return(1); } return(colorSpace.HasFlag(ColorSpaces.CS_Sub_Height_1) ? 1 : (colorSpace.HasFlag(ColorSpaces.CS_Sub_Height_4) ? 4 : 2)); }
public static YUVPlanes[] GetPlanes(ColorSpaces colorSpace) { if (colorSpace.HasFlag(ColorSpaces.CS_INTERLEAVED)) { return new[] { default(YUVPlanes) } } ; return(new[] { YUVPlanes.PLANAR_Y, YUVPlanes.PLANAR_U, YUVPlanes.PLANAR_V }); }
public static int GetBitDepth(this ColorSpaces colorSpace) { return(bitDepths.First(p => colorSpace.HasFlag(p.Key)).Value); }
public static int GetHeightSubsample(this ColorSpaces colorSpace) { return(colorSpace.HasFlag(ColorSpaces.CS_Sub_Height_1) ? 1 : (colorSpace.HasFlag(ColorSpaces.CS_Sub_Height_4) ? 4 : 2)); }
public static int GetWidthSubsample(this ColorSpaces colorSpace) { return(colorSpace.HasFlag(ColorSpaces.CS_Sub_Width_1) ? 1 : (colorSpace.HasFlag(ColorSpaces.CS_Sub_Width_4) ? 4 : 2)); }
public static bool IsRealPlanar(this ColorSpaces pixelType) { return(pixelType.HasFlag(ColorSpaces.CS_PLANAR) && !pixelType.HasFlag(ColorSpaces.CS_INTERLEAVED)); //Y8 is interleaved }