directory.setString(tagType, readString(tagValueOffset, componentCount));
break;
case FMT_SRATIONAL:
case FMT_URATIONAL:
if (componentCount==1) {
Rational rational = new Rational(get32Bits(tagValueOffset), get32Bits(tagValueOffset + 4));
directory.setRational(tagType, rational);
} else {
Rational[] rationals = new Rational[componentCount];
for (int i = 0; i<componentCount; i++)
rationals[i] = new Rational(get32Bits(tagValueOffset + (8 * i)), get32Bits(tagValueOffset + 4 + (8 * i)));
directory.setRationalArray(tagType, rationals);
}
break;
case FMT_SBYTE:
case FMT_BYTE: