Axiom.Media.PixelUtil.GetBitMasks C# (CSharp) Метод

GetBitMasks() публичный статический Метод

public static GetBitMasks ( PixelFormat format ) : uint[]
format PixelFormat
Результат uint[]
		public static uint[] GetBitMasks( PixelFormat format )
		{
			uint[] rgba = new uint[ 4 ];
			rgba[ 0 ] = PixelConverter.GetDescriptionFor( format ).rmask;
			rgba[ 1 ] = PixelConverter.GetDescriptionFor( format ).gmask;
			rgba[ 2 ] = PixelConverter.GetDescriptionFor( format ).bmask;
			rgba[ 3 ] = PixelConverter.GetDescriptionFor( format ).amask;
			return rgba;
		}

Usage Example

Пример #1
0
        private PixelFormat _convertPixelFormat(int rgbBits, int rMask, int gMask, int bMask, int aMask)
        {
            // General search through pixel formats
            for (var i = (int)PixelFormat.Unknown + 1; i < (int)PixelFormat.Count; ++i)
            {
                var pf = (PixelFormat)i;
                if (PixelUtil.GetNumElemBits(pf) == rgbBits)
                {
                    var testMasks = PixelUtil.GetBitMasks(pf);
                    var testBits  = PixelUtil.GetBitDepths(pf);

                    if (testMasks[0] == rMask && testMasks[1] == gMask && testMasks[2] == bMask &&
                        // for alpha, deal with 'X8' formats by checking bit counts
                        (testMasks[3] == aMask || (aMask == 0 && testBits[3] == 0)))
                    {
                        return(pf);
                    }
                }
            }

            throw new AxiomException("Cannot determine pixel format");
        }