internal override IFDHeader ParseBytes(List <byte> bytes, Endianness e, int offset) { IFDHeader result = new IFDHeader(typeof(CanonMakerNotesTagCode)); byte[] fieldsNumberBytes = new byte[2]; fieldsNumberBytes[0] = ByteManager.ChopByteArray(bytes.ToArray(), 0, 1)[0]; int fieldsNumber = ByteManager.GetShortValue(fieldsNumberBytes); int voided = 0; byte[][] fieldsBytes = exifProcessor.ExtractTagsBytes(ByteManager.ChopByteArray(bytes.ToArray(), 1, fieldsNumber * 12).ToList(), fieldsNumber).ToArray(); foreach (byte[] fieldBytes in fieldsBytes) { byte[] orderedBytes = OrderIFDFieldBytes(fieldBytes); IFDField field = exifProcessor.GetIFDField <CanonMakerNotesTagCode>(orderedBytes, e); field.Block = IFDHeaderType.MakerNotesHeader; field.ValueElementsOffset = ByteManager.GetIntValue(field.FieldValueElements); LoadFieldTextValue <CanonMakerNotesTagCode>(ref field, bytes, offset, offset, e, voided); result.IFDFields.Add(field); } return(result); }
internal override IFDHeader ParseBytes(List <byte> bytes, Endianness e, int offsetCorrectionIndex) { IFDHeader result = new IFDHeader(typeof(NikonType1MakerNotesTagCode)); byte[] fieldsCountBytes = ByteManager.ChopByteArray(bytes.ToArray(), 8, 2); byte[] sortedFieldsCountBytes = exifProcessor.SortBytes(e, fieldsCountBytes); result.FieldsCount = ByteManager.GetIntValue(sortedFieldsCountBytes); int voided = 0; byte[][] fieldsBytes = exifProcessor.ExtractTagsBytes(ByteManager.ChopByteArray(bytes.ToArray(), 8 + 2, result.FieldsCount * 12).ToList(), result.FieldsCount).ToArray(); foreach (byte[] fieldBytes in fieldsBytes) { IFDField field = exifProcessor.GetIFDField <NikonType1MakerNotesTagCode>(fieldBytes, e); field.Block = IFDHeaderType.MakerNotesHeader; exifProcessor.LoadFieldTextValue <NikonType1MakerNotesTagCode>(ref field, bytes, offsetCorrectionIndex, 0, e, voided); result.IFDFields.Add(field); } return(result); }