264 printf(
"DEBUG writeIMAGIC: Reading Imagic file\n");
281 strncpy(header.
type,
"REAL",
sizeof(header.
type));
288 strncpy(header.
type,
"INTG",
sizeof(header.
type));
295 strncpy(header.
type,
"PACK",
sizeof(header.
type));
300 strncpy(header.
type,
"COMP",
sizeof(header.
type));
316 strncpy(header.
type,
"PACK",
sizeof(header.
type));
319 strncpy(header.
type,
"INTG",
sizeof(header.
type));
322 (strncpy)(header.
type,
"REAL",
sizeof(header.
type));
325 strncpy(header.
type,
"COMP",
sizeof(header.
type));
364 size_t Xdim, Ydim, Zdim, Ndim;
370 size_t datasize, datasize_n;
371 datasize_n = (size_t)Xdim*Ydim*Zdim;
376 header.
npix2 = Xdim*Ydim;
383 tm* t = localtime(&timer);
385 header.
ndate = t->tm_mday;
386 header.
nmonth = t->tm_mon + 1;
387 header.
nyear = t->tm_year;
388 header.
nhour = t->tm_hour;
389 header.
nminut = t->tm_min;
390 header.
nsec = t->tm_sec;
396 #define SET_MAIN_HEADER_VALUE(field, label) MDMainHeader.getValueOrDefault(label, aux, 0.); header.field = (float)aux 404 memcpy(header.
lastpr,
"Xmipp", 5);
418 header.
ifn = imgStart + Ndim - 1;
420 header.
ifn = Ndim - 1;
441 fseek(
fhed,
sizeof(
int), SEEK_SET);
444 int ifnswp = header.
ifn;
453 fseek(
fimg, datasize * imgStart, SEEK_SET);
456 auto it =
MD.begin();
458 for (
size_t i = 0;
i < Ndim; ++
i, ++it)
466 #define SET_HEADER_VALUEInt(field, label) (*it)->getValueOrDefault((label), (aux), 0); header.field = -(int)(aux) 467 #define SET_HEADER_VALUEDouble(field, label) (*it)->getValueOrDefault((label), (aux), 0.); header.field = -(float)(aux) 476 header.
imn = imgStart +
i + 1;
488 fseek(
fimg, datasize-1, SEEK_CUR);
495 fseek(
fimg, datasize, SEEK_CUR);
#define REPORT_ERROR(nerr, ErrormMsg)
virtual void coreAllocateReuse()=0
void setValue(const MDObject &object) override
void swapPage(char *page, size_t pageNrElements, DataType datatype, int swap=1)
std::vector< std::unique_ptr< MDRow > > MD
const size_t tiff_map_min_size
virtual bool checkMmapT(DataType datatype)=0
virtual void mmapFile()=0
#define SET_HEADER_VALUEInt(field, label)
#define SET_HEADER_VALUEDouble(field, label)
void lock(int fileno=0)
Lock file.
#define SET_MAIN_HEADER_VALUE(field, label)
virtual void writeData(FILE *fimg, size_t offset, DataType wDType, size_t datasize_n, CastWriteMode castMode=CW_CAST)=0
bool empty() const override
#define IMG_INDEX(select_img)
Incorrect MultidimArray dimensions.
virtual DataType myT() const =0
MultidimArrayBase * mdaBase
DataType datatypeRAW(String strDT)
size_t gettypesize(DataType type)
Returns memory size of datatype.