public static TimImageHeader Read(TimHeader header, Stream input) { TimImageHeader result = input.ReadStruct <TimImageHeader>(); if (header.BytesPerPixel == 0) { result.Width *= 2; } return(result); }
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; }
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)); }
public TimTexture2DReader(TimHeader header, TimImageHeader imageHeader, Stream input) { _header = Exceptions.CheckArgumentNull(header, "header"); _imageHeader = Exceptions.CheckArgumentNull(imageHeader, "imageHeader"); _input = Exceptions.CheckReadableStream(input, "input"); }
public static GLTexture Read(TimHeader header, TimImageHeader imageHeader, Stream input) { TimTexture2DReader converter = new TimTexture2DReader(header, imageHeader, input); return(converter.Read()); }
public static void Convert(TimHeader header, TimImageHeader imageHeader, Stream input, Stream output) { TimPixelFormatsConverter converter = new TimPixelFormatsConverter(header, imageHeader, input, output); converter.Convert(); }
public TimImage(TimImageHeader imageHeader, GLTexture layer) { ImageHeader = Exceptions.CheckArgumentNull(imageHeader, "imageHeader"); Layer = Exceptions.CheckArgumentNull(layer, "layer"); }