public static ImageLibrary FromStream(Stream inStream) { AowSerializer <ImageLibrary> serializer = new AowSerializer <ImageLibrary>(); ImageLibrary ilb = serializer.Deserialize(inStream); ilb.DataStream = new MemoryStream(); inStream.CopyTo(ilb.DataStream); return(ilb); }
public static BitmapSource LoadBitmap(AowImage image, ImageLibrary library) { IImageDataReader reader = ImageDataReaderProvider.ReaderFor(image); library.DataStream.Position = image.DataOffset; BitmapPalette palette = library.Palettes.FirstOrDefault(p => p.Index == image.PaletteIndex); PixelFormat? pixelFormat = null; if (palette == null) { switch (image.PaletteIndex) { case 1431343888: pixelFormat = PixelFormats.Bgr555; break; case 1448121104: pixelFormat = PixelFormats.Bgr565; break; } } return(reader.ReadData(image, library.DataStream, image.DataLength, palette, pixelFormat)); }