Beispiel #1
0
        public static TimImageHeader Read(TimHeader header, Stream input)
        {
            TimImageHeader result = input.ReadStruct <TimImageHeader>();

            if (header.BytesPerPixel == 0)
            {
                result.Width *= 2;
            }
            return(result);
        }
Beispiel #2
0
        public TimPixelFormatsConverter(TimHeader header, TimImageHeader imageHeader, Stream input, Stream output)
        {
            Exceptions.CheckArgumentNull(header, "header");
            Exceptions.CheckArgumentNull(imageHeader, "imageHeader");
            Exceptions.CheckArgumentNull(input, "input");
            Exceptions.CheckArgumentNull(output, "output");

            _header      = header;
            _imageHeader = imageHeader;
            _input       = input;
            _output      = output;
        }
Beispiel #3
0
        public static TimImage Read(TimHeader header, Stream input)
        {
            TimImageHeader imageHeader = TimImageHeader.Read(header, input);
            GLTexture      layer       = TimTexture2DReader.Read(header, imageHeader, input);

            //SafeHGlobalHandle pixels = new SafeHGlobalHandle(imageHeader.Width * imageHeader.Height * header.OutputPixelFormat.BitsPerPixel / 8);
            SafeHGlobalHandle pixels = new SafeHGlobalHandle(imageHeader.ContentSize);

            try
            {
                using (UnmanagedMemoryStream output = new UnmanagedMemoryStream(pixels, 0, (long)pixels.ByteLength, FileAccess.Write))
                    TimPixelFormatsConverter.Convert(header, imageHeader, input, output);
            }
            catch
            {
                pixels.Dispose();
                throw;
            }
            return(new TimImage(imageHeader, layer));
        }
Beispiel #4
0
 public TimTexture2DReader(TimHeader header, TimImageHeader imageHeader, Stream input)
 {
     _header      = Exceptions.CheckArgumentNull(header, "header");
     _imageHeader = Exceptions.CheckArgumentNull(imageHeader, "imageHeader");
     _input       = Exceptions.CheckReadableStream(input, "input");
 }
Beispiel #5
0
        public static GLTexture Read(TimHeader header, TimImageHeader imageHeader, Stream input)
        {
            TimTexture2DReader converter = new TimTexture2DReader(header, imageHeader, input);

            return(converter.Read());
        }
Beispiel #6
0
        public static void Convert(TimHeader header, TimImageHeader imageHeader, Stream input, Stream output)
        {
            TimPixelFormatsConverter converter = new TimPixelFormatsConverter(header, imageHeader, input, output);

            converter.Convert();
        }
Beispiel #7
0
 public TimImage(TimImageHeader imageHeader, GLTexture layer)
 {
     ImageHeader = Exceptions.CheckArgumentNull(imageHeader, "imageHeader");
     Layer       = Exceptions.CheckArgumentNull(layer, "layer");
 }