public FixBadPixelsList(FileReader aPefFile, uint aID, uint aVersion, uint aFlags, uint aSizeInBytes) : base(aID, aVersion, aFlags, aSizeInBytes) { _bayerPhase = aPefFile.ReadI4BE(); int badPointCount = aPefFile.ReadI4BE(); int badRectCount = aPefFile.ReadI4BE(); _badPoints = new List <BadPoint>(); _badRects = new List <BadRect>(); for (int i = 0; i < badPointCount; i++) { BadPoint p = new BadPoint(); p.Row = aPefFile.ReadI4BE(); p.Column = aPefFile.ReadI4BE(); _badPoints.Add(p); } for (int i = 0; i < badRectCount; i++) { BadRect r = new BadRect(); r.Top = aPefFile.ReadI4BE(); r.Left = aPefFile.ReadI4BE(); r.Bottom = aPefFile.ReadI4BE(); r.Right = aPefFile.ReadI4BE(); _badRects.Add(r); } }
public override byte[] GetAsBytes() { MemoryStream ms = new MemoryStream(); BinaryWriter bw = new BinaryWriter(ms); bw.Write(Endian_swap(_id)); bw.Write(Endian_swap(_version)); bw.Write(Endian_swap(_flags)); bw.Write(Endian_swap(_sizeInBytes)); bw.Write(Endian_swap(_bayerPhase)); bw.Write(Endian_swap(_badPoints.Count)); bw.Write(Endian_swap(_badRects.Count)); for (int i = 0; i < _badPoints.Count; i++) { BadPoint p = _badPoints[i]; bw.Write(Endian_swap(p.Row)); bw.Write(Endian_swap(p.Column)); } for (int i = 0; i < _badRects.Count; i++) { BadRect r = _badRects[i]; bw.Write(Endian_swap(r.Top)); bw.Write(Endian_swap(r.Left)); bw.Write(Endian_swap(r.Bottom)); bw.Write(Endian_swap(r.Right)); } bw.Flush(); ms.Flush(); byte[] ret = ms.ToArray(); bw.Close(); bw.Dispose(); return(ret); }