Esempio n. 1
0
        public static TgaHeader ReadHeader(Stream stream)
        {
            var header = new TgaHeader
            {
                IdLength        = ReadByte(stream),
                ColorMapType    = ReadByte(stream),
                DataTypeCode    = ReadDataTypeCode(stream),
                ColorMapOrigin  = ReadShort(stream),
                ColorMapLength  = ReadShort(stream),
                ColorMapDepth   = ReadByte(stream),
                XOrigin         = ReadShort(stream),
                YOrigin         = ReadShort(stream),
                Width           = ReadShort(stream),
                Height          = ReadShort(stream),
                BitsPerPixel    = ReadByte(stream),
                ImageDescriptor = ReadByte(stream)
            };

            return(header);
        }
Esempio n. 2
0
        private static ImageSource Decode(byte[] data, TgaHeader tgaHeader, int size)
        {
            switch (tgaHeader.DataTypeCode)
            {
            case DataTypeCode.Rgb:
                return(RgbDecoder.Decode(data, tgaHeader, size));

            case DataTypeCode.RgbRle:
                return(RgbRleDecoder.Decode(data, tgaHeader, size));

            case DataTypeCode.Bw:
            case DataTypeCode.BwRle:
            case DataTypeCode.ColorMapped:
            case DataTypeCode.ColorMappedRle:
            case DataTypeCode.ColorMappedCompressed:
            case DataTypeCode.ColorMappedCompressedQuad:
            case DataTypeCode.NoImageData:
                return(null);    // We know about these formats but don't offer a preview of them

            default:
                throw new UnsupportedPixelFormatException();
            }
        }