Ejemplo n.º 1
0
/* convert from an t_Image structure to an _image structure */
_image *epidaureLib2_image(const t_ImagePtr epi) {
  _image *img;

  img = _initImage();
  img->xdim = epi->tx;
  img->ydim = epi->ty;
  img->zdim = epi->tz;
  img->vdim = 1;
  img->data = (void *) epi->buf;
  switch(epi->type) {
  case TYPEIM_256:
    img->wdim = 1;
    img->wordKind = WK_FIXED;
    img->sign = SGN_UNSIGNED;
    break;
  case TYPEIM_16B:
    img->wdim = 2;
    img->wordKind = WK_FIXED;
    img->sign = SGN_UNSIGNED;
    break;
  case TYPEIM_S16B:
    img->wdim = 2;
    img->wordKind = WK_FIXED;
    img->sign = SGN_SIGNED;
    break;
  case TYPEIM_FLOAT:
    img->wdim = 4;
    img->wordKind = WK_FLOAT;
    break;
  default:
    break;
  }

  return img;  
}
Ejemplo n.º 2
0
int main()
{
  
  volatile _image* i = _initImage();

  bool ok = (i != 0);
  _freeImage(const_cast<_image*>(i));
  return ok ? 0 : 1;
}
Ejemplo n.º 3
0
/* convert from an inrimage structure to an _image structure */
_image *inrimage2_image(const inrimage *inr) {
  _image *img;

  img = _initImage();
  img->xdim = inr->ncols;
  img->ydim = inr->nrows;
  img->zdim = inr->nplanes;
  img->vdim = inr->vdim;
  img->vx = (float) inr->vx;
  img->vy = (float) inr->vy;
  img->vz = (float) inr->vz;
  img->data = inr->data;
  switch(inr->type) {
  case WT_UNSIGNED_CHAR:
  case WT_RGB:
  case WT_RGBA:
    img->wdim = 1;
    img->wordKind = WK_FIXED;
    img->sign = SGN_UNSIGNED;
    break;
  case WT_UNSIGNED_SHORT:
    img->wdim = 2;
    img->wordKind = WK_FIXED;
    img->sign = SGN_UNSIGNED;
    break;
  case WT_SIGNED_SHORT:
    img->wdim = 2;
    img->wordKind = WK_FIXED;
    img->sign = SGN_SIGNED;
    break;
  case WT_UNSIGNED_INT:
    img->wdim = 4;
    img->wordKind = WK_FIXED;
    img->sign = SGN_UNSIGNED;
    break;
  case WT_SIGNED_INT:
    img->wdim = 4;
    img->wordKind = WK_FIXED;
    img->sign = SGN_SIGNED;
    break;
  case WT_UNSIGNED_LONG:
    img->wdim = 8;
    img->wordKind = WK_FIXED;
    img->sign = SGN_UNSIGNED;
    break;
  case WT_SIGNED_LONG:
    img->wdim = 8;
    img->wordKind = WK_FIXED;
    img->sign = SGN_SIGNED;
    break;
  case WT_FLOAT:
    img->wdim = 4;
    img->wordKind = WK_FLOAT;
    break;
  case WT_FLOAT_VECTOR:
    img->wdim = 4;
    img->wordKind = WK_FLOAT;
    if(inr->varray) img->vectMode = VM_NON_INTERLACED;
    else img->vectMode = VM_INTERLACED;
    break;
  case WT_DOUBLE:
    img->wdim = 8;
    img->wordKind = WK_FLOAT;
    break;
  case WT_DOUBLE_VECTOR:
    img->wdim = 8;
    img->wordKind = WK_FLOAT;
    if(inr->varray) img->vectMode = VM_NON_INTERLACED;
    else img->vectMode = VM_INTERLACED;
    break;
  }

  return img;
}
Ejemplo n.º 4
0
int VT_WriteInrimageWithName( vt_image *image, char *name )
{
  char *proc = "VT_WriteImage";
  _image *inr = NULL;

  if ( _VT_DEBUG_ ) {
    fprintf( stderr, "%s: uses LIBINRIMAGE routines\n", proc );
  }

  if ( _flag_init_readers == 0 ) {
    _init_readers();
    _flag_init_readers = 1;
  }

  inr = _initImage();


  switch ( image->type ) {
  case SCHAR :
    inr->wordKind = WK_FIXED;
    inr->sign     = SGN_SIGNED;
    inr->wdim     = sizeof( char );
    break;
  case UCHAR :
    inr->wordKind = WK_FIXED;
    inr->sign     = SGN_UNSIGNED;
    inr->wdim     = sizeof( char );
    break;
  case SSHORT :
    inr->wordKind = WK_FIXED;
    inr->sign     = SGN_SIGNED;
    inr->wdim     = sizeof( short int );
    break;
  case USHORT :
    inr->wordKind = WK_FIXED;
    inr->sign     = SGN_UNSIGNED;
    inr->wdim     = sizeof( short int );
    break;
  case FLOAT :
    inr->wordKind = WK_FLOAT;
    inr->sign     = SGN_UNKNOWN;
    inr->wdim     = sizeof( float );
    break;
  case DOUBLE :
    inr->wordKind = WK_FLOAT;
    inr->sign     = SGN_UNKNOWN;
    inr->wdim     = sizeof( double );
    break;
  case SINT :
    inr->wordKind = WK_FIXED;
    inr->sign     = SGN_SIGNED;
    inr->wdim     = sizeof( int );
    break;
  case UINT :
    inr->wordKind = WK_FIXED;
    inr->sign     = SGN_UNSIGNED;
    inr->wdim     = sizeof( int );
    break;
  default :
    free(inr);
    return 0;
  }

  inr->xdim = image->dim.x;
  inr->ydim = image->dim.y;
  inr->zdim = image->dim.z;
  inr->vdim = image->dim.v;

  inr->vx = image->siz.x;
  inr->vy = image->siz.y;
  inr->vz = image->siz.z;

  inr->tx = image->off.x;
  inr->ty = image->off.y;
  inr->tz = image->off.z;

  inr->rx = image->rot.x;
  inr->ry = image->rot.y;
  inr->rz = image->rot.z;

  inr->cx = image->ctr.x;
  inr->cy = image->ctr.y;
  inr->cz = image->ctr.z;

  inr->nuser = image->nuser;
  inr->user  = image->user;

  inr->data = image->buf;

  if ( _writeImage( inr, name ) == -1 ) {
    if ( _VT_VERBOSE_ )
      fprintf( stderr, "%s: unable to write image '%s'", proc, image->name );
    free( inr );
    return 0;
  }

  free( inr );
  return 1;
}