getDataSize method
The size in bytes of the data written by this directory. Can be used to calculate end-of-block offsets.
Implementation
int getDataSize() {
final numEntries = values.length;
var dataOffset = 2 + (12 * numEntries) + 4;
for (var value in values) {
final dataSize = value.dataSize;
if (dataSize > 4) {
dataOffset += dataSize;
}
}
// storage for sub-ifd blocks
for (var subName in sub.keys) {
final subIfd = sub[subName];
var subSize = 2 + (12 * subIfd.values.length);
for (var value in subIfd.values) {
final dataSize = value.dataSize;
if (dataSize > 4) {
subSize += dataSize;
}
}
dataOffset += subSize;
}
return dataOffset;
}