'Return an |_IfdEntry| subclass instance containing the tag and value
of the tag parsed from *stream_rdr* at *offset*. Note this method is
common to all subclasses. Override the ``_parse_value()`` method to
provide distinctive behavior based on field type.'

@classmethod
def from_stream(cls, stream_rdr, offset):

    tag_code = stream_rdr.read_short(offset, 0)
    value_count = stream_rdr.read_long(offset, 4)
    value_offset = stream_rdr.read_long(offset, 8)
    value = cls._parse_value(stream_rdr, offset, value_count, value_offset)
    return cls(tag_code, value)
