9#include "tpcclibConfig.h"
24static char *info[] = {
25 "Report the image dimensions.",
27 "Usage: @P [Options] imgfile",
29 "Image file can be in ECAT 6.3 or 7.x, NIfTI-1, or Analyze 7.5 format.",
33 " Report only the width (x), height (y), planes (z), or time frames (t);",
34 " by default all are printed in stdout.",
36 " Instead of image dimension, report the pixel size(s) in mm.",
39 "Example: print dimensions of all ECAT 7 images in Windows command shell",
40 " for %f in (*.v) do @P %f",
42 "Example: print dimensions of all ECAT 7 images in Linux/OSX command shell",
43 " for file in ./*.v; do @P $file; done",
45 "See also: imgdelfr, imgdelpl, lmlist, imgbox, imgshrink, imgadd",
47 "Keywords: image, pixel, header, cropping, tool",
66int main(
int argc,
char **argv)
68 int ai, help=0, version=0, verbose=1;
69 char imgfile[FILENAME_MAX];
76 if(argc==1) {
tpcPrintUsage(argv[0], info, stderr);
return(1);}
79 for(ai=1; ai<argc; ai++)
if(*argv[ai]==
'-') {
81 char *cptr=argv[ai]+1;
if(*cptr==
'-') cptr++;
if(cptr==NULL)
continue;
82 if(!strcasecmp(cptr,
"X")) {dim=
'x';
continue;}
83 if(!strcasecmp(cptr,
"Y")) {dim=
'y';
continue;}
84 if(!strcasecmp(cptr,
"Z")) {dim=
'z';
continue;}
85 if(!strcasecmp(cptr,
"T")) {dim=
't';
continue;}
86 if(!strcasecmp(cptr,
"P")) {dim=
'z';
continue;}
87 if(!strcasecmp(cptr,
"F")) {dim=
't';
continue;}
88 if(!strcasecmp(cptr,
"SIZE")) {item=1;
continue;}
89 fprintf(stderr,
"Error: invalid option '%s'.\n", argv[ai]);
94 if(help==2) {
tpcHtmlUsage(argv[0], info,
"");
return(0);}
99 if(ai<argc) {
strlcpy(imgfile, argv[ai], FILENAME_MAX); ai++;}
100 if(ai<argc) {fprintf(stderr,
"Error: too many arguments.\n");
return(1);}
104 fprintf(stderr,
"Error: missing command-line argument; use option --help\n");
111 printf(
"imgfile := %s\n", imgfile);
112 if(dim) printf(
"dim := %c\n", dim);
113 if(item) printf(
"item := %d\n", item);
120 if(verbose>2) printf(
"reading %s\n", imgfile);
122 if(
imgRead(imgfile, &img)) {fprintf(stderr,
"Error: %s\n", img.
statmsg);
return(2);}
129 if(dim==
'x') fprintf(stdout,
"%d\n", img.
dimx);
130 else if(dim==
'y') fprintf(stdout,
"%d\n", img.
dimy);
131 else if(dim==
'z') fprintf(stdout,
"%d\n", img.
dimz);
132 else if(dim==
't') fprintf(stdout,
"%d\n", img.
dimt);
133 else fprintf(stdout,
"%d %d %d %d\n", img.
dimx, img.
dimy, img.
dimz, img.
dimt);
136 if(dim==
'x') fprintf(stdout,
"%g\n", img.
sizex);
137 else if(dim==
'y') fprintf(stdout,
"%g\n", img.
sizey);
138 else if(dim==
'z') fprintf(stdout,
"%g\n", img.
sizez);
void imgEmpty(IMG *image)
int imgRead(const char *fname, IMG *img)
Header file for libtpcimgio.
Header file for libtpcimgp.
Header file for libtpcmisc.
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
size_t strlcpy(char *dst, const char *src, size_t dstsize)
int tpcHtmlUsage(const char *program, char *text[], const char *path)
void tpcPrintBuild(const char *program, FILE *fp)
void tpcPrintUsage(const char *program, char *text[], FILE *fp)