private static ExifValue GetOffsetValue(Collection <ExifValue> ifdValues, Collection <ExifValue> values, ExifTag offset) { var index = -1; for (var i = 0; i < ifdValues.Count; i++) { if (ifdValues[i].Tag == offset) { index = i; } } if (values.Count > 0) { if (index != -1) { return(ifdValues[index]); } var result = ExifValues.Create(offset); ifdValues.Add(result); return(result); } else if (index != -1) { ifdValues.RemoveAt(index); } return(null); }
public void SetValue <TValueType>(ExifTag <TValueType> tag, TValueType value) { var currentValue = GetValue(tag); if (currentValue != null) { currentValue.Value = value; return; } var newExifValue = ExifValues.Create(tag); newExifValue.Value = value; _values.Add(newExifValue); }
private ExifValue CreateValue(ExifTag tag, ExifDataType dataType, uint numberOfComponents) { var exifValue = ExifValues.Create(tag); if (exifValue == null) { return(null); } var value = ReadValue(dataType, numberOfComponents); if (!exifValue.TrySetValue(value)) { return(null); } return(exifValue); }