added some IImageDecoder implementations.

This commit is contained in:
morkt
2016-10-26 05:10:30 +04:00
parent d02a9b180a
commit 2c06c1cbcd
8 changed files with 196 additions and 95 deletions

View File

@@ -74,11 +74,7 @@ namespace GameRes.Formats.CatSystem
public override ImageData Read (IBinaryStream stream, ImageMetaData info)
{
using (var reader = new Hg2Reader (stream, (Hg2MetaData)info))
{
var pixels = reader.Unpack();
var format = 24 == info.BPP ? PixelFormats.Bgr24 : PixelFormats.Bgra32;
return ImageData.CreateFlipped (info, format, null, pixels, reader.Stride);
}
return reader.Image;
}
public override void Write (Stream file, ImageData image)
@@ -91,6 +87,20 @@ namespace GameRes.Formats.CatSystem
{
Hg2MetaData m_hg2;
public override ImageData Image
{
get
{
if (null == m_image)
{
var pixels = Unpack();
var format = 24 == m_hg2.BPP ? PixelFormats.Bgr24 : PixelFormats.Bgra32;
m_image = ImageData.CreateFlipped (m_hg2, format, null, pixels, Stride);
}
return m_image;
}
}
public Hg2Reader (IBinaryStream input, Hg2MetaData info) : base (input, info)
{
m_hg2 = info;