getDataSize method

int getDataSize()

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;
}