Moxiecode.MXI.Image.ExifParser.setTag C# (CSharp) Метод

setTag() приватный Метод

private setTag ( string ifd, object tag, int value ) : bool
ifd string
tag object
value int
Результат bool
        private bool setTag(string ifd, object tag, int value)
        {
            // If tag name passed translate into hex key
            if (tag is string) {
                Dictionary<int, string> tmpTags = tags[ifd.ToLower()];
                foreach (KeyValuePair<int, string> pair in tmpTags) {
                    if (pair.Value == (string)tag) {
                        tag = pair.Key;
                        break;
                    }
                }
            }

            long offset;
            if (!offsets.TryGetValue(ifd.ToLower() + "IFD", out offset)) {
                return false;
            }

            long length = data.SHORT(offset);
            long tagOffset, valueOffset = -1;

            for (int i = 0; i < length; i++) {
                tagOffset = offset + 12 * i + 2;

                if (data.SHORT(tagOffset) == (int)tag) {
                    valueOffset = tagOffset + 8;
                    break;
                }
            }

            if (valueOffset < 0)
                return false;

            data.write((int)valueOffset, value, 4);
            return true;
        }