diff --git a/modules/io/src/img/map_io_mrc_handler.cc b/modules/io/src/img/map_io_mrc_handler.cc index bdde9d1e1701bb7180874db98d9bf9f7f8dc47a1..55d4f69138c1e48b90d797f2c3aefe31b2b8efe2 100644 --- a/modules/io/src/img/map_io_mrc_handler.cc +++ b/modules/io/src/img/map_io_mrc_handler.cc @@ -585,13 +585,13 @@ void real_filler(img::image_state::RealSpatialImageState& isi, img::Progress::Instance().Register(&this_dummy,header.ns*header.nr,100); for(int is=0;is<header.ns;++is) { pnt[maps]=header.nsstart+is; + std::vector<B> buffer(header.nr*header.nc); + f.read(&buffer[0],header.nr*header.nc); for(int ir=0;ir<header.nr;++ir) { pnt[mapr]=header.nrstart+ir; for(int ic=0;ic<header.nc;++ic) { pnt[mapc]=header.ncstart+ic; - B tmp; - f >> tmp; - isi.Value(pnt) = static_cast<Real>(tmp); + isi.Value(pnt) = img::Val2Val<B,Real>(buffer[header.nc*ir+ic]); } img::Progress::Instance().AdvanceProgress(&this_dummy); }