public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var reader = new Reader(stream, (int)info.Width, (int)info.Height); try { reader.Unpack(MaiVersion.First); } catch { reader.Unpack(MaiVersion.Second); } return(ImageData.Create(info, PixelFormats.Bgr24, null, reader.Data, reader.Stride)); }
public override ImageData Read(Stream stream, ImageMetaData info) { var reader = new Reader(stream, (CmMetaData)info); reader.Unpack(); return(ImageData.CreateFlipped(info, reader.Format, reader.Palette, reader.Data, reader.Stride)); }
public override ImageMetaData ReadMetaData(IBinaryStream stream) { uint length = stream.ReadUInt32(); int chunk_size = stream.ReadInt32(); if (length > 0xffffff || chunk_size <= 0 || length < chunk_size) { return(null); } using (var reader = new Reader(stream, (uint)Math.Max(0x20, chunk_size + 2), chunk_size)) { reader.Unpack(); var bmp = reader.Data; if (bmp[0] != 'B' || bmp[1] != 'M') { return(null); } return(new TgfMetaData { Width = LittleEndian.ToUInt32(bmp, 0x12), Height = LittleEndian.ToUInt32(bmp, 0x16), BPP = LittleEndian.ToInt16(bmp, 0x1c), BitmapSize = length, ChunkSize = chunk_size, }); } }
public override ImageData Read(IBinaryStream file, ImageMetaData info) { var reader = new Reader(file, (EpaMetaData)info); reader.Unpack(); return(ImageData.Create(info, reader.Format, reader.Palette, reader.Data)); }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var reader = new Reader(stream, (int)info.Width, (int)info.Height); reader.Unpack(); return(ImageData.Create(info, PixelFormats.Bgr24, null, reader.Data, reader.Stride)); }
byte[] ReadPixelsData(IBinaryStream file, RctMetaData meta) { byte[] base_image = null; if (meta.FileName != null && meta.BaseNameLength > 0 && OverlayFrames.Get <bool>() && meta.BaseRecursionDepth < BaseRecursionLimit) { base_image = ReadBaseImage(file, meta); } file.Position = meta.DataOffset + meta.BaseNameLength; if (meta.IsEncrypted) { file = OpenEncryptedStream(file, meta.DataSize); } try { using (var reader = new Reader(file, meta)) { reader.Unpack(); if (base_image != null) { return(CombineImage(base_image, reader.Data)); } return(reader.Data); } } catch { if (meta.IsEncrypted) { Key = null; // probably incorrect encryption scheme caused exception, reset key } throw; } }
public override ImageData Read(IBinaryStream file, ImageMetaData info) { var reader = new Reader(file.AsStream, (GrxMetaData)info); reader.Unpack(); return(ImageData.Create(info, reader.Format, null, reader.Data, reader.Stride)); }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var reader = new Reader(stream.AsStream, (CpbMetaData)info); reader.Unpack(); return(ImageData.Create(info, reader.Format, reader.Palette, reader.Data)); }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var reader = new Reader(stream, (Pt1MetaData)info); reader.Unpack(); return(ImageData.Create(info, reader.Format, null, reader.Data)); }
ImageData ApplyMaskToWipData(ImageMetaData info, byte[] image, string mask_name) { using (var mask_file = VFS.OpenBinaryStream(mask_name)) { if (mask_file.Signature != Signature) { throw new InvalidFormatException(); } var mask_info = ReadMetaData(mask_file) as WipMetaData; if (null == mask_info || 8 != mask_info.BPP || info.Width != mask_info.Width || info.Height != mask_info.Height) { throw new InvalidFormatException(); } using (var reader = new Reader(mask_file, mask_info)) { reader.Unpack(); var palette = reader.Palette; int dst_stride = (int)info.Width * 4; var pixels = new byte[dst_stride * (int)info.Height]; int plane_size = (int)info.Width * (int)info.Height; var alpha = reader.Data; int dst = 0; for (int src = 0; src < plane_size; ++src) { pixels[dst++] = image[src]; pixels[dst++] = image[src + plane_size]; pixels[dst++] = image[src + plane_size * 2]; var color = palette[alpha[src]]; pixels[dst++] = (byte)((color.B + color.G + color.R) / 3); } return(ImageData.Create(info, PixelFormats.Bgra32, null, pixels, dst_stride)); } } }
public override ImageData Read(IBinaryStream stream, ImageMetaData metadata) { var reader = new Reader(stream, (TgaMetaData)metadata); var pixels = reader.Unpack(); return(ImageData.Create(metadata, reader.Format, reader.Palette, pixels, reader.Stride)); }
public override ImageData Read(Stream file, ImageMetaData info) { using (var reader = new Reader (file, info.Width * info.Height)) { reader.Unpack(); return ImageData.Create (info, PixelFormats.Bgra32, null, reader.Data); } }
public override ImageData Read(Stream stream, ImageMetaData info) { using (var reader = new Reader(stream, info)) { reader.Unpack(); return(ImageData.CreateFlipped(info, reader.Format, null, reader.Data, reader.Stride)); } }
public override ImageData Read(IBinaryStream file, ImageMetaData info) { using (var reader = new Reader(file, info.Width * info.Height)) { reader.Unpack(); return(ImageData.Create(info, PixelFormats.Bgra32, null, reader.Data)); } }
public override ImageData Read(IBinaryStream file, ImageMetaData info) { using (var reader = new Reader(file, (LimMetaData)info)) { reader.Unpack(); return(ImageData.Create(info, reader.Format, null, reader.Data)); } }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = (Pt1MetaData)info; var reader = new Reader(stream, meta); reader.Unpack(); return(ImageData.Create(meta, reader.Format, null, reader.Data)); }
public override ImageData Read(Stream stream, ImageMetaData info) { using (var reader = new Reader (stream, (PrsMetaData)info)) { reader.Unpack(); return ImageData.Create (info, reader.Format, null, reader.Data, reader.Stride); } }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { using (var reader = new Reader(stream, (CrxMetaData)info)) { reader.Unpack(); return(ImageData.Create(info, reader.Format, reader.Palette, reader.Data, reader.Stride)); } }
public override ImageData Read(Stream stream, ImageMetaData info) { stream.Position = 0x10; using (var reader = new Reader(stream, (int)info.Width, (int)info.Height)) { reader.Unpack(); return(ImageData.Create(info, PixelFormats.Bgr24, null, reader.Data)); } }
public override ImageData Read(Stream file, ImageMetaData info) { file.Position = 0x10; using (var reader = new Reader(file, info)) { reader.Unpack(); return(ImageData.Create(info, reader.Format, null, reader.Data)); } }
public override ImageData Read(IBinaryStream file, ImageMetaData info) { using (var reader = new Reader(file, info)) { reader.Unpack(); var palette = new BitmapPalette(reader.Palette); return(ImageData.Create(info, PixelFormats.Indexed8, palette, reader.Data, (int)info.Width)); } }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var reader = new Reader(stream.AsStream, (Ed8MetaData)info); reader.Unpack(); var palette = new BitmapPalette(reader.Palette); return(ImageData.Create(info, PixelFormats.Indexed8, palette, reader.Data, (int)info.Width)); }
public override ImageData Read(IBinaryStream file, ImageMetaData info) { var meta = (ElgMetaData)info; using (var reader = new Reader(file, meta)) { reader.Unpack(); return(ImageData.Create(meta, reader.Format, reader.Palette, reader.Data)); } }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = (CgMetaData)info; using (var reader = new Reader(stream, meta)) { reader.Unpack(); return(ImageData.Create(info, PixelFormats.Bgr24, null, reader.Data, (int)info.Width * 3)); } }
public override ImageData Read(Stream file, ImageMetaData info) { var meta = (ElgMetaData)info; file.Position = meta.HeaderSize; using (var reader = new Reader (file, meta)) { reader.Unpack(); return ImageData.Create (meta, reader.Format, reader.Palette, reader.Data); } }
public override ImageData Read(IBinaryStream file, ImageMetaData info) { var meta = (EpaMetaData)info as EpaMetaData; file.Position = 2 == meta.Mode ? 0x18 : 0x10; var reader = new Reader(file.AsStream, meta); reader.Unpack(); return(ImageData.Create(meta, reader.Format, reader.Palette, reader.Data)); }
public override ImageData Read(Stream file, ImageMetaData info) { file.Position = 0x14; using (var reader = new Reader (file, info)) { reader.Unpack(); var palette = new BitmapPalette (reader.Palette); return ImageData.Create (info, PixelFormats.Indexed8, palette, reader.Data, (int)info.Width); } }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var reader = new Reader(stream.AsStream, (QntMetaData)info); reader.Unpack(); int stride = (int)info.Width * (reader.BPP / 8); PixelFormat format = 24 == reader.BPP ? PixelFormats.Bgr24 : PixelFormats.Bgra32; return(ImageData.Create(info, format, null, reader.Data, stride)); }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = info as EpaMetaData; if (null == meta) throw new ArgumentException ("EpaFormat.Read should be supplied with EpaMetaData", "info"); stream.Position = 2 == meta.Mode ? 0x18 : 0x10; var reader = new Reader (stream, meta); reader.Unpack(); return ImageData.Create (meta, reader.Format, reader.Palette, reader.Data); }
public override ImageData Read(IBinaryStream file, ImageMetaData info) { var meta = (MgxMetaData)info; using (var input = new StreamRegion(file.AsStream, meta.GrxOffset, true)) { var reader = new Reader(input, meta); reader.Unpack(); return(ImageData.Create(info, reader.Format, null, reader.Data, reader.Stride)); } }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var meta = (EdtMetaData)info; stream.Position = 0x22; using (var reader = new Reader(stream.AsStream, meta)) { reader.Unpack(); return(ImageData.Create(meta, PixelFormats.Bgr24, null, reader.Data, (int)meta.Width * 3)); } }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var meta = (SgxMetaData)info; using (var grx = new StreamRegion(stream.AsStream, meta.GrxOffset, true)) { var reader = new Reader(grx, (GrxMetaData)meta.GrxInfo); reader.Unpack(); return(ImageData.Create(info, reader.Format, null, reader.Data, reader.Stride)); } }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var meta = (DgcMetaData)info; stream.Position = 12; using (var reader = new Reader(stream, meta)) { reader.Unpack(); return(ImageData.Create(info, reader.Format, null, reader.Data)); } }
public override ImageData Read(IBinaryStream stream, ImageMetaData info) { var meta = (EgnMetaData)info; stream.Position = meta.DataOffset; var reader = new Reader(stream, meta.UnpackedSize, meta.Mode, meta.Flag); reader.Unpack(); using (var bmp = new BinMemoryStream(reader.Data, stream.Name)) return(Bmp.Read(bmp, info)); }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = info as S25MetaData; if (null == meta) throw new ArgumentException ("S25Format.Read should be supplied with S25MetaData", "info"); using (var reader = new Reader (stream, meta)) { var pixels = reader.Unpack(); return ImageData.Create (info, PixelFormats.Bgra32, null, pixels); } }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = info as Ed8MetaData; if (null == meta) throw new ArgumentException ("Ed8Format.Read should be supplied with Ed8MetaData", "info"); stream.Position = 0x1a; var reader = new Reader (stream, meta); reader.Unpack(); var palette = new BitmapPalette (reader.Palette); return ImageData.Create (info, PixelFormats.Indexed8, palette, reader.Data, (int)info.Width); }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = info as DgcMetaData; if (null == meta) throw new ArgumentException ("DgcFormat.Read should be supplied with DgcMetaData", "info"); stream.Position = 12; using (var reader = new Reader (stream, meta)) { reader.Unpack(); return ImageData.Create (info, reader.Format, null, reader.Data); } }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = info as PicMetaData; if (null == meta) throw new ArgumentException ("PicFormat.Read should be supplied with PicMetaData", "info"); stream.Position = 0x12; using (var reader = new Reader (stream, meta)) { reader.Unpack(); return ImageData.Create (meta, PixelFormats.Bgr24, null, reader.Data, (int)meta.Width*3); } }
public override ImageData Read(Stream stream, ImageMetaData metadata) { var meta = metadata as TgaMetaData; if (null == meta) { throw new System.ArgumentException("TgaFormat.Read should be supplied with TgaMetaData", "metadata"); } var reader = new Reader(stream, meta); var pixels = reader.Unpack(); return(ImageData.Create(meta, reader.Format, reader.Palette, pixels, reader.Stride)); }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = info as EgnMetaData; if (null == meta) throw new ArgumentException ("EgnFormat.Read should be supplied with EgnMetaData", "info"); stream.Position = meta.DataOffset; using (var input = new ArcView.Reader (stream)) { var reader = new Reader (input, meta.UnpackedSize, meta.Mode, meta.Flag); reader.Unpack(); using (var bmp = new MemoryStream (reader.Data)) return base.Read (bmp, info); } }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = info as QntMetaData; if (null == meta) throw new ArgumentException ("QntFormat.Read should be supplied with QntMetaData", "info"); stream.Position = 0x44; using (var reader = new Reader (stream, meta)) { reader.Unpack(); int stride = (int)info.Width * (reader.BPP / 8); PixelFormat format = 24 == reader.BPP ? PixelFormats.Bgr24 : PixelFormats.Bgra32; return ImageData.Create (info, format, null, reader.Data, stride); } }
byte[] ReadPixelsData(Stream file, RctMetaData meta) { file.Position = meta.DataOffset + meta.AddSize; if (meta.IsEncrypted) file = OpenEncryptedStream (file, meta.DataSize); try { using (var reader = new Reader (file, meta)) { reader.Unpack(); return reader.Data; } } catch { if (meta.IsEncrypted) Key = null; // probably incorrect encryption scheme caused exception, reset key throw; } }
public override ImageMetaData ReadMetaData(Stream stream) { using (var input = new ArcView.Reader (stream)) { int signature = ~input.ReadInt32(); int mode = (signature & 0x70) >> 4; // v6 if (0 != (mode & 4)) return null; int flag = signature & 0xF; // v7 int data_size, data_offset; if (0 != (signature & 0x80)) { data_offset = 4; data_size = Binary.BigEndian (signature) & 0xFFFFFF; } else { data_offset = 8; data_size = Binary.BigEndian (input.ReadInt32()); } if (data_size <= 0 || data_size > 0xFFFFFF) // arbitrary max BMP size return null; var reader = new Reader (input, 0x36, mode, flag); // size of BMP header reader.Unpack(); using (var bmp = new MemoryStream (reader.Data)) { var info = base.ReadMetaData (bmp); if (null == info) return null; return new EgnMetaData { Width = info.Width, Height = info.Height, BPP = info.BPP, Mode = mode, Flag = flag, DataOffset = data_offset, UnpackedSize = data_size, }; } } }
public override ImageData Read(Stream stream, ImageMetaData info) { var meta = (CgMetaData)info; using (var reader = new Reader (stream, meta)) { reader.Unpack(); return ImageData.Create (info, PixelFormats.Bgr24, null, reader.Data, (int)info.Width*3); } }
public override ImageData Read(Stream stream, ImageMetaData info) { var reader = new Reader (stream, (AmMetaData)info); reader.Unpack(); return ImageData.Create (info, reader.Format, reader.Palette, reader.Data); }
public override ImageData Read(Stream file, ImageMetaData info) { var meta = (WipMetaData)info; if (meta.FrameCount > 1) Trace.WriteLine ("Extra frames ignored", info.FileName); file.Position = 8 + 24 * meta.FrameCount; Color[] palette = null; if (8 == meta.BPP) { var palette_data = new byte[0x400]; if (palette_data.Length != file.Read (palette_data, 0, palette_data.Length)) throw new InvalidFormatException(); palette = new Color[0x100]; for (int i = 0; i < 0x100; ++i) { palette[i] = Color.FromRgb (palette_data[i*4], palette_data[i*4+1], palette_data[i*4+2]); } } using (var reader = new Reader (file, meta)) { reader.Unpack(); if (24 == meta.BPP) { byte[] raw = reader.Data; int size = (int)meta.Width * (int)meta.Height; byte[] pixels = new byte[size*3]; int dst = 0; for (int i = 0; i < size; ++i) { pixels[dst++] = raw[i]; pixels[dst++] = raw[i+size]; pixels[dst++] = raw[i+size*2]; } return ImageData.Create (meta, PixelFormats.Bgr24, null, pixels, (int)meta.Width*3); } else if (8 == meta.BPP) { byte[] pixels = reader.Data; var bmp_palette = new BitmapPalette (palette); return ImageData.Create (meta, PixelFormats.Indexed8, bmp_palette, pixels, (int)meta.Width); } else throw new InvalidFormatException(); } }