Raw2D Image2D2Raw2D(Image2D &src) { PIXTYPE *data= new PIXTYPE[src.GetLength()]; if (src.PixelType==1) { unsigned char* datSrc = (unsigned char*)(src.data); //PIXTYPE *data= new PIXTYPE[src.GetLength()]; for (int i=0;i<src.GetLength();i++) { data[i]=datSrc[i]; } } else if (src.PixelType == 2) { unsigned short * datSrc = (unsigned short *)(src.data); //PIXTYPE *data= new PIXTYPE[src.GetLength()]; for (int i=0;i<src.GetLength();i++) { data[i]=datSrc[i]; } } else if (src.PixelType == 3 ) { short* datSrc = (short*)(src.data); for (int i=0;i<src.GetLength();i++) { data[i]=datSrc[i]; } } //src.Data=data; Raw2D *ret=new Raw2D(src.width,src.height,data); return *ret; }
void * Raw2D2Image2D(Raw2D &src,long long type) { PIXTYPE *data= new PIXTYPE[src.size()]; if (type==1) { unsigned char* datSrc = new unsigned char [src.size()];//(unsigned char*)(src.data); //PIXTYPE *data= new PIXTYPE[src.GetLength()]; for (long long i=0;i<src.size();i++) { datSrc[i]=(unsigned char)src.getXY(i); } //void * ret= (void *)datSrc; Image2D * ret = new Image2D(src.getXsize(),src.getYsize(),type); memcpy(ret->data,datSrc,ret->GetLength()); unsigned char *dat =(unsigned char*)ret->data; void *res =(void *)ret; return res; } else if (type == 2) { unsigned short * datSrc = new unsigned short [src.size()];//(unsigned short *)(src.data); //PIXTYPE *data= new PIXTYPE[src.GetLength()]; for (long long i=0;i<src.size();i++) { datSrc[i]=src.getXY(i); } void * ret=(void *)datSrc; return datSrc; } else { float* datSrc = new float [src.size()]; //(short*)(src.data); for (long long i=0;i<src.size();i++) { datSrc[i]=src.getXY(i); } void *ret =(void *)datSrc; return datSrc; } }
//qym 2014-7 use original data pointer or create space //Raw2D Image2D2Raw2D(Image2D &src) Raw2D Image2D2Raw2D(Image2D &src,bool createSpace) { if(createSpace) { PIXTYPE *data= new PIXTYPE[src.GetLength()]; if (src.PixelType==1) { unsigned char* datSrc = (unsigned char*)(src.data); //PIXTYPE *data= new PIXTYPE[src.GetLength()]; for (long long i=0;i<src.GetLength();i++) { data[i]=datSrc[i]; } } else if (src.PixelType == 2) { unsigned short * datSrc = (unsigned short *)(src.data); //PIXTYPE *data= new PIXTYPE[src.GetLength()]; for (long long i=0;i<src.GetLength();i++) { data[i]=datSrc[i]; } } else if (src.PixelType == 3 ) { //qym 2014-7 short* datSrc = (short*)(src.data); float * datSrc = (float *)(src.data); for (long long i=0;i<src.GetLength();i++) { data[i]=datSrc[i]; } } //qym 2014-7 Raw2D use shared memory ,CreateSpace = false Raw2D *ret=new Raw2D(src.width,src.height,data); ret->CreateSpace = true; return *ret; } else { /* PIXTYPE *data; if (src.PixelType==1) { unsigned char* datSrc = (unsigned char*)(src.data); } */ Raw2D *ret=new Raw2D(src.width,src.height,(PIXTYPE *)src.data); //qym 2014-7 Raw2D use shared memory ,CreateSpace = false return *ret; } //src.Data=data; //return *ret; }