void doWrite(nitf::Record record, const std::string& inRootFile, const std::string& outFile, size_t bufferSize) { std::cout << "Preparing to write file in " << bufferSize << " size blocks" << std::endl; nitf::BufferedWriter output(outFile, bufferSize); nitf::Writer writer; writer.prepareIO(output, record); int numImages = record.getHeader().getNumImages(); nitf::ListIterator end = record.getImages().end(); nitf::ListIterator iter = record.getImages().begin(); for (int i = 0; i < numImages && iter != end; ++i, ++iter) { nitf::ImageSegment imseg; imseg = *iter; int nbands = imseg.getSubheader().getNumImageBands(); nitf::ImageWriter iWriter = writer.newImageWriter(i); nitf::ImageSource iSource = setupBands(nbands, i, inRootFile); iWriter.attachSource(iSource); } writer.write(); //output.close(); std::cout << "Write block info: " << std::endl; std::cout << "------------------------------------" << std::endl; std::cout << "Total number of blocks written: " << output.getNumBlocksWritten() << std::endl; std::cout << "Of those, " << output.getNumPartialBlocksWritten() << " were less than buffer size " << bufferSize << std::endl; }