Beispiel #1
0
        public HzcDecoder(IBinaryStream input, HzcMetaData info, bool leave_open = false)
        {
            m_info   = info;
            m_stride = (int)m_info.Width * m_info.BPP / 8;
            switch (m_info.Type)
            {
            default: throw new NotSupportedException();

            case 0: Format = PixelFormats.Bgr24; break;

            case 1:
            case 2: Format = PixelFormats.Bgra32; break;

            case 3: Format = PixelFormats.Gray8; break;

            case 4:
            {
                Format = PixelFormats.Indexed8;
                var colors = new Color[2] {
                    Color.FromRgb(0, 0, 0), Color.FromRgb(0xFF, 0xFF, 0xFF)
                };
                Palette = new BitmapPalette(colors);
                break;
            }
            }
            Source         = new ZLibStream(input.AsStream, CompressionMode.Decompress, leave_open);
            m_frame_offset = 0;
            m_frame_size   = m_stride * (int)Info.Height;
        }
Beispiel #2
0
 public HzcDecoder(IBinaryStream input, HzcMetaData info, Entry entry) : this(input, info)
 {
     m_frame_offset = entry.Offset;
     m_frame_size   = (int)entry.Size;
 }
Beispiel #3
0
 public HzcArchive(ArcView arc, ArchiveFormat impl, ICollection <Entry> dir, HzcMetaData info)
     : base(arc, impl, dir)
 {
     ImageInfo = info;
 }