public CbgReader(Stream input, CbgMetaData info) : base(input, true) { m_info = info; m_pixel_size = m_info.BPP / 8; Stride = (int)info.Width * m_pixel_size; m_key = m_info.Key; m_magic = 0; switch (m_info.BPP) { case 32: Format = PixelFormats.Bgra32; break; case 24: Format = PixelFormats.Bgr24; break; case 8: Format = PixelFormats.Gray8; break; case 16: if (2 == m_info.Version) { throw new InvalidFormatException(); } Format = PixelFormats.Bgr565; break; default: throw new InvalidFormatException(); } }
public ParallelCbgDecoder(CbgMetaData info, byte[] dct_data) { BPP = info.BPP; Width = ((int)info.Width + 7) & -8; Height = ((int)info.Height + 7) & -8; for (int i = 0; i < 0x80; ++i) { DCT[i >> 6, i & 0x3F] = dct_data[i] * DCT_Table[i & 0x3F]; } }
public CbgReader(Stream input, CbgMetaData info) : base(input, true) { m_info = info; m_pixel_size = m_info.BPP / 8; Stride = (int)info.Width * m_pixel_size; m_key = m_info.Key; m_magic = 0; switch (m_info.BPP) { case 32: Format = PixelFormats.Bgra32; break; case 24: Format = PixelFormats.Bgr24; break; case 8: Format = PixelFormats.Gray8; break; case 16: if (2 == m_info.Version) throw new InvalidFormatException(); Format = PixelFormats.Bgr565; break; default: throw new InvalidFormatException(); } }