protected override Bitmap OnGetBitmap(int imageIndex, int paletteIndex) { VtxpImageHeader imageHeader = ImageHeaders[imageIndex]; bool isIndexed = (imageHeader.PaletteOffset != 0); ImageBinary imageBinary = new ImageBinary(); imageBinary.Width = imageHeader.Width; imageBinary.Height = imageHeader.Height; imageBinary.InputEndianness = Endian.LittleEndian; if (isIndexed) { imageBinary.InputPaletteFormat = PSVita.GetPaletteFormat(imageHeader.TextureFormat); imageBinary.AddInputPalette(imageHeader.PaletteData); } imageBinary.InputPixelFormat = PSVita.GetPixelDataFormat(imageHeader.TextureFormat); imageBinary.AddInputPixels(imageHeader.PixelData); if (imageHeader.TextureType == VtxpTextureType.Swizzled) { imageBinary.InputPixelFormat |= PixelDataFormat.PixelOrderingSwizzledVita; } return(imageBinary.GetBitmap()); }
protected override void OnOpen(EndianBinaryReader reader) { MagicNumber = Encoding.ASCII.GetString(reader.ReadBytes(4)); Unknown0x04 = reader.ReadUInt32(); NumImages = reader.ReadUInt32(); UnkTablePointer = reader.ReadUInt32(); Padding = reader.ReadBytes(16); ImageHeaders = new VtxpImageHeader[NumImages]; for (int i = 0; i < ImageHeaders.Length; i++) { ImageHeaders[i] = new VtxpImageHeader(reader); } }