Пример #1
0
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;
}
Пример #2
0
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;

	}

}
Пример #3
0
//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;
}