// signature set to 0 because all serialized rUGP objects have same signature. public override ImageMetaData ReadMetaData(IBinaryStream file) { if (file.Signature != CRioArchive.ObjectSignature) { return(null); } var rio = new CRioArchive(file); uint signature; var class_ref = rio.LoadRioTypeCore(out signature); CRip img; if ("CRip007" == class_ref) { img = new CRip007(); } else if ("CRip" == class_ref) { img = new CRip(); } else { return(null); } return(img.ReadMetaData(rio)); }
public override ImageMetaData ReadMetaData(IBinaryStream file) { if (file.Signature != CRioArchive.ObjectSignature) { return(null); } var rio = new CRioArchive(file); uint signature; var class_ref = rio.LoadRioTypeCore(out signature); uint object_pos = (uint)file.Position; if ("CS5i" != class_ref) { return(null); } file.Seek(8, SeekOrigin.Current); return(new S5iMetaData { Width = file.ReadUInt16(), Height = file.ReadUInt16(), BPP = 32, ObjectOffset = object_pos, Schema = rio.Schema, }); }