#include "mrilib.h"
int main( int argc , char *argv[] )
{
MRI_IMARR *iar ;
MRI_IMAGE *im ;
NI_stream ns=NULL ;
NI_element *nel ;
int ii , iarg=1 ;
int nb=0 ;
if( argc < 2 || strcmp(argv[1],"-help") == 0 ){
printf("Usage: im2niml imagefile [imagefile ...]\n"
"Converts the input image(s) to a text-based NIML element\n"
"and writes the result to stdout. Sample usage:\n"
" aiv -p 4444 &\n"
" im2niml zork.jpg | nicat tcp:localhost:4444\n"
"-- Author: RW Cox.\n"
) ;
exit(0) ;
}
ns = NI_stream_open( "stdout:" , "w" ) ;
if( ns == NULL ) ERROR_exit("Can't open stdout?!") ;
for( ; iarg < argc ; iarg++ ){
iar = mri_read_file( argv[iarg] ) ;
if( iar == NULL ){
ERROR_message("Can't read file %s",argv[iarg]); continue;
}
for( ii=0 ; ii < IMARR_COUNT(iar) ; ii++ ){
im = IMARR_SUBIM(iar,ii) ; nel = mri_to_niml(im) ; mri_free(im) ;
if( nel == NULL ){
ERROR_message("Can't process %s[%d]",argv[iarg],ii); continue;
}
nb += NI_write_element( ns , nel , NI_TEXT_MODE ) ;
NI_free_element(nel) ;
}
FREE_IMARR(iar) ;
}
NI_stream_closenow(ns) ;
INFO_message("Wrote %d bytes to stdout",nb) ;
exit(0) ;
}
syntax highlighted by Code2HTML, v. 0.9.1