Doxygen Source Code Documentation
mri_to_rgba.c File Reference
#include "mrilib.h"
Go to the source code of this file.
Functions | |
MRI_IMAGE * | mri_to_rgba (MRI_IMAGE *oldim) |
Function Documentation
|
Definition at line 5 of file mri_to_rgba.c. References rgba::a, rgba::b, MRI_DATA::byte_data, ENTRY, MRI_DATA::float_data, rgba::g, MRI_IMAGE::im, MRI_IMAGE::kind, MRI_COPY_AUX, mri_new_conforming, MRI_RGBA_PTR, MRI_IMAGE::nvox, rgba::r, RETURN, MRI_DATA::rgb_data, MRI_DATA::rgba_data, and MRI_DATA::short_data. Referenced by mri_to_mri().
00006 { 00007 MRI_IMAGE *newim ; 00008 register int ii , npix ; 00009 register rgba * oar ; 00010 00011 ENTRY("mri_to_rgba") ; 00012 00013 if( oldim == NULL ) RETURN( NULL ); 00014 00015 newim = mri_new_conforming( oldim , MRI_rgba ) ; oar = MRI_RGBA_PTR(newim) ; 00016 npix = oldim->nvox ; 00017 00018 switch( oldim->kind ){ 00019 00020 case MRI_byte: 00021 for( ii=0 ; ii < npix ; ii++ ){ 00022 oar[ii].r = oar[ii].g = oar[ii].b = oldim->im.byte_data[ii] ; 00023 oar[ii].a = 255 ; 00024 } 00025 break ; 00026 00027 case MRI_float: 00028 for( ii=0 ; ii < npix ; ii++ ){ 00029 oar[ii].r = oar[ii].g = oar[ii].b = oldim->im.float_data[ii] ; 00030 oar[ii].a = 255 ; 00031 } 00032 break ; 00033 00034 case MRI_short: 00035 for( ii=0 ; ii < npix ; ii++ ){ 00036 oar[ii].r = oar[ii].g = oar[ii].b = oldim->im.short_data[ii] ; 00037 oar[ii].a = 255 ; 00038 } 00039 break ; 00040 00041 case MRI_rgb: 00042 for( ii=0 ; ii < npix ; ii++ ){ 00043 oar[ii].r = oldim->im.rgb_data[3*ii] ; 00044 oar[ii].g = oldim->im.rgb_data[3*ii+1] ; 00045 oar[ii].b = oldim->im.rgb_data[3*ii+2] ; 00046 oar[ii].a = 255 ; 00047 } 00048 break ; 00049 00050 case MRI_rgba: 00051 memcpy( oar , oldim->im.rgba_data , sizeof(rgba)*npix ) ; 00052 break ; 00053 00054 default: 00055 fprintf(stderr,"mri_to_rgb: unrecognized image conversion %d\n",oldim->kind) ; 00056 RETURN( NULL ); 00057 } 00058 00059 MRI_COPY_AUX(newim,oldim) ; 00060 RETURN( newim ); 00061 } |