Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }