renamed some ImageDecoder properties and classes.

This commit is contained in:
morkt 2016-10-26 15:42:27 +04:00
parent 2c06c1cbcd
commit c771b13d4e
11 changed files with 46 additions and 46 deletions

View File

@ -94,11 +94,11 @@ namespace GameRes.Formats.CatSystem
protected int m_pixel_size;
protected ImageData m_image;
public Stream Input { get { return m_input.AsStream; } }
public int Stride { get; protected set; }
public ImageFormat Format { get { return null; } }
public ImageMetaData Info { get { return m_info; } }
public virtual ImageData Image { get { throw new NotImplementedException(); } }
public Stream Source { get { return m_input.AsStream; } }
public ImageFormat SourceFormat { get { return null; } }
public ImageMetaData Info { get { return m_info; } }
public virtual ImageData Image { get { throw new NotImplementedException(); } }
public int Stride { get; protected set; }
protected HgReader (IBinaryStream input, HgMetaData info)
{
@ -112,12 +112,12 @@ namespace GameRes.Formats.CatSystem
{
var ctl_offset = data_offset + data_packed;
var data = new byte[data_unpacked];
using (var z = new StreamRegion (Input, data_offset, data_packed, true))
using (var z = new StreamRegion (Source, data_offset, data_packed, true))
using (var data_in = new ZLibStream (z, CompressionMode.Decompress))
if (data.Length != data_in.Read (data, 0, data.Length))
throw new EndOfStreamException();
using (var z = new StreamRegion (Input, ctl_offset, ctl_packed, true))
using (var z = new StreamRegion (Source, ctl_offset, ctl_packed, true))
using (var ctl_in = new ZLibStream (z, CompressionMode.Decompress))
using (var bits = new LsbBitStream (ctl_in))
{
@ -258,7 +258,7 @@ namespace GameRes.Formats.CatSystem
public byte[] Unpack ()
{
Input.Position = m_info.HeaderSize;
Source.Position = m_info.HeaderSize;
var img_type = m_input.ReadBytes (8);
if (Binary.AsciiEqual (img_type, "img0000\0"))
return UnpackImg0000();
@ -271,7 +271,7 @@ namespace GameRes.Formats.CatSystem
byte[] UnpackImg0000 ()
{
Flipped = true;
Input.Position = m_info.HeaderSize+0x18;
Source.Position = m_info.HeaderSize+0x18;
int packed_data_size = m_input.ReadInt32();
int data_size = m_input.ReadInt32();
int packed_ctl_size = m_input.ReadInt32();
@ -284,8 +284,8 @@ namespace GameRes.Formats.CatSystem
Flipped = false;
m_input.ReadInt32();
var jpeg_size = m_input.ReadInt32();
long next_section = Input.Position + jpeg_size;
var decoder = new JpegBitmapDecoder (Input,
long next_section = Source.Position + jpeg_size;
var decoder = new JpegBitmapDecoder (Source,
BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
var frame = decoder.Frames[0];
if (frame.Format.BitsPerPixel < 24)
@ -313,7 +313,7 @@ namespace GameRes.Formats.CatSystem
return output;
m_input.Seek (8, SeekOrigin.Current);
int alpha_size = m_input.ReadInt32();
using (var alpha_in = new StreamRegion (Input, Input.Position+4, alpha_size, true))
using (var alpha_in = new StreamRegion (Source, Source.Position+4, alpha_size, true))
using (var alpha = new ZLibStream (alpha_in, CompressionMode.Decompress))
{
for (int i = 3; i < output.Length; i += 4)

View File

@ -240,7 +240,7 @@ namespace GameRes.Formats.Cyberworks
}
}
input.Position = 0;
return new ImageStreamDecoder (input);
return new ImageFormatDecoder (input);
}
uint DecodeDecimal (ArcView file, long offset)
@ -409,7 +409,7 @@ namespace GameRes.Formats.Cyberworks
if (id == scheme.Value2)
return new AImageReader (input, scheme);
input.Position = 0;
return new ImageStreamDecoder (input);
return new ImageFormatDecoder (input);
}
byte[] ReadToc (string toc_name)

View File

@ -52,9 +52,9 @@ namespace GameRes.Formats.Cyberworks
AImageScheme m_scheme;
ImageData m_image;
public Stream Input { get { m_input.Position = 0; return m_input.AsStream; } }
public ImageMetaData Info { get { return m_info; } }
public ImageFormat Format { get { return null; } }
public Stream Source { get { m_input.Position = 0; return m_input.AsStream; } }
public ImageFormat SourceFormat { get { return null; } }
public ImageMetaData Info { get { return m_info; } }
public ImageData Image
{

View File

@ -212,8 +212,8 @@ namespace GameRes.Formats.Kaguya
protected override ImageData GetImageData ()
{
m_input.Position = 0x14;
int stride = info.BPP/8*(int)Info.Width;
var pixels = m_input.ReadBytes (stride*(int)info.Height);
int stride = Info.BPP/8*(int)Info.Width;
var pixels = m_input.ReadBytes (stride*(int)Info.Height);
return ImageData.CreateFlipped (Info, GetFormat(), null, pixels, stride);
}

View File

@ -26,6 +26,7 @@
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.IO;
using System.Windows.Media;
using GameRes.Compression;
namespace GameRes.Formats.Musica
@ -96,10 +97,10 @@ namespace GameRes.Formats.Musica
ImageMetaData m_info;
ImageData m_image;
public Stream Input { get { return m_input; } }
public ImageFormat Format { get { return null; } }
public ImageMetaData Info { get { return m_info; } }
public ImageData Image
public Stream Source { get { return m_input; } }
public ImageFormat SourceFormat { get { return null; } }
public ImageMetaData Info { get { return m_info; } }
public ImageData Image
{
get
{

View File

@ -95,9 +95,9 @@ namespace GameRes.Formats.ShiinaRio
ImageMetaData m_info;
ImageData m_image;
public Stream Input { get { m_input.Position = 0; return m_input.AsStream; } }
public ImageMetaData Info { get { return m_info; } }
public ImageFormat Format { get { return null; } }
public Stream Source { get { m_input.Position = 0; return m_input.AsStream; } }
public ImageFormat SourceFormat { get { return null; } }
public ImageMetaData Info { get { return m_info; } }
public ImageData Image
{

View File

@ -310,14 +310,14 @@ namespace GARbro.GUI
{
using (var decoder = arc.OpenImage (entry))
{
var src_format = decoder.Format; // could be null
var src_format = decoder.SourceFormat; // could be null
string target_ext = target_format.Extensions.FirstOrDefault() ?? "";
string outname = FindUniqueFileName (entry.Name, target_ext);
if (src_format == target_format)
{
// source format is the same as a target, copy file as is
using (var output = ArchiveFormat.CreateFile (outname))
decoder.Input.CopyTo (output);
decoder.Source.CopyTo (output);
return;
}
ImageData image = decoder.Image;

View File

@ -51,5 +51,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion ("1.2.20.1412")]
[assembly: AssemblyFileVersion ("1.2.20.1412")]
[assembly: AssemblyVersion ("1.2.20.1503")]
[assembly: AssemblyFileVersion ("1.2.20.1503")]

View File

@ -730,7 +730,7 @@ namespace GameRes
return arc_fs.Source.OpenImage (entry);
var input = fs.OpenBinaryStream (entry);
return new ImageStreamDecoder (input);
return new ImageFormatDecoder (input);
}
public static Stream OpenStream (string filename)

View File

@ -203,7 +203,7 @@ namespace GameRes
public virtual IImageDecoder OpenImage (ArcFile arc, Entry entry)
{
var input = arc.OpenBinaryEntry (entry);
return new ImageStreamDecoder (input);
return new ImageFormatDecoder (input);
}
/// <summary>

View File

@ -30,12 +30,12 @@ namespace GameRes
{
public interface IImageDecoder : IDisposable
{
Stream Input { get; }
Stream Source { get; }
/// <summary>
/// Underlying image format or null if image is not represented by any format.
/// </summary>
ImageFormat Format { get; }
ImageFormat SourceFormat { get; }
/// <summary>
/// Image parameters.
@ -48,15 +48,14 @@ namespace GameRes
ImageData Image { get; }
}
public sealed class ImageStreamDecoder : IImageDecoder
public sealed class ImageFormatDecoder : IImageDecoder
{
IBinaryStream m_file;
ImageData m_image;
public Stream Input { get { m_file.Position = 0; return m_file.AsStream; } }
public ImageFormat Format { get; private set; }
public ImageMetaData Info { get; private set; }
public Stream Source { get { m_file.Position = 0; return m_file.AsStream; } }
public ImageFormat SourceFormat { get; private set; }
public ImageMetaData Info { get; private set; }
public ImageData Image
{
@ -65,19 +64,19 @@ namespace GameRes
if (null == m_image)
{
m_file.Position = 0;
m_image = Format.Read (m_file, Info);
m_image = SourceFormat.Read (m_file, Info);
}
return m_image;
}
}
public ImageStreamDecoder (IBinaryStream file)
public ImageFormatDecoder (IBinaryStream file)
{
m_file = file;
var format = ImageFormat.FindFormat (file);
if (null == format)
throw new InvalidFormatException();
Format = format.Item1;
SourceFormat = format.Item1;
Info = format.Item2;
}
@ -97,10 +96,10 @@ namespace GameRes
protected IBinaryStream m_input;
protected ImageData m_image;
public Stream Input { get { m_input.Position = 0; return m_input.AsStream; } }
public ImageFormat Format { get { return null; } }
public ImageMetaData Info { get; protected set; }
public ImageData Image
public Stream Source { get { m_input.Position = 0; return m_input.AsStream; } }
public ImageFormat SourceFormat { get { return null; } }
public ImageMetaData Info { get; protected set; }
public ImageData Image
{
get
{