public Point GetImagePosition(ObjectDataSegment ods) { if (SubtitleSegments == null) { ParseSegments(); } var p = new Point(0, 0); foreach (RegionCompositionSegment rcs in RegionCompositions) { foreach (RegionCompositionSegmentObject o in rcs.Objects) { if (o.ObjectId == ods.ObjectId) { foreach (PageCompositionSegment cds in PageCompositions) { foreach (var r in cds.Regions) { if (r.RegionId == rcs.RegionId) { p.X = r.RegionHorizontalAddress + o.ObjectHorizontalPosition; p.Y = r.RegionVerticalAddress + o.ObjectVerticalPosition; return(p); } } } p.X = o.ObjectHorizontalPosition; p.Y = o.ObjectVerticalPosition; } } } return(p); }
private ClutDefinitionSegment GetClutDefinitionSegment(ObjectDataSegment ods) { foreach (RegionCompositionSegment rcs in RegionCompositions) { foreach (RegionCompositionSegmentObject o in rcs.Objects) { if (o.ObjectId == ods.ObjectId) { foreach (ClutDefinitionSegment cds in ClutDefinitions) { if (cds.ClutId == rcs.RegionClutId) { return(cds); } } } } } if (ClutDefinitions.Count > 0) { return(ClutDefinitions[0]); } return(null); // TODO: Return default clut }
public Bitmap GetImage(ObjectDataSegment ods) { if (SubtitleSegments == null) { ParseSegments(); } if (ods.Image != null) { return(ods.Image); } ClutDefinitionSegment cds = GetClutDefinitionSegment(ods); ods.DecodeImage(_dataBuffer, ods.BufferIndex, cds); return(ods.Image); }
public Bitmap GetImage(ObjectDataSegment ods) { if (SubtitleSegments == null) ParseSegments(); if (ods.Image != null) return ods.Image; ClutDefinitionSegment cds = GetClutDefinitionSegment(ods); ods.DecodeImage(_dataBuffer, ods.BufferIndex, cds); return ods.Image; }
public Point GetImagePosition(ObjectDataSegment ods) { if (SubtitleSegments == null) ParseSegments(); var p = new Point(0, 0); foreach (RegionCompositionSegment rcs in RegionCompositions) { foreach (RegionCompositionSegmentObject o in rcs.Objects) { if (o.ObjectId == ods.ObjectId) { foreach (PageCompositionSegment cds in PageCompositions) { foreach (var r in cds.Regions) { if (r.RegionId == rcs.RegionId) { p.X = r.RegionHorizontalAddress + o.ObjectHorizontalPosition; p.Y = r.RegionVerticalAddress + o.ObjectVerticalPosition; return p; } } } p.X = o.ObjectHorizontalPosition; p.Y = o.ObjectVerticalPosition; } } } return p; }
private ClutDefinitionSegment GetClutDefinitionSegment(ObjectDataSegment ods) { foreach (RegionCompositionSegment rcs in RegionCompositions) { foreach (RegionCompositionSegmentObject o in rcs.Objects) { if (o.ObjectId == ods.ObjectId) { foreach (ClutDefinitionSegment cds in ClutDefinitions) { if (cds.ClutId == rcs.RegionClutId) return cds; } } } } if (ClutDefinitions.Count > 0) return ClutDefinitions[0]; return null; // TODO: Return default clut }