cximage转换成uiimage

cximage转换成uiimage

  和上一篇关于将uiimage转换成cximage的文章一样,我们需要利用unsigned char*来记录图像的数据

  1、将cximage转换成unsigned char*:

同样,我们先定义一个cximage为xiImage,同时malloc一个unsigned char*(记得之后要free掉)。调用cximage的GetPixelColor函数,将cximage的图像信息依次赋到imagedata中,具体见代码:

int temp = 0;
    for(inty =0;y < xiImage->GetHeight();y++)
    {
       for(int x =0;x <xiImage->GetWidth();x++)
       {
           imagedata[temp] = xiImage->GetPixelColor(x,y).rgbRed;
           imagedata[temp+1] =xiImage->GetPixelColor(x, y).rgbGreen;
           imagedata[temp+2] =xiImage->GetPixelColor(x, y).rgbBlue;
           imagedata[temp+3] =xiImage->GetPixelColor(x, y).rgbReserved;
           temp += 4;
       }
    }

得到的便是一个储存了信息的imagedata。

  2、将unsigned char*转换成uiimage:

我们同样需要了解两个函数CGBitmapContextCreate和CGBitmapContextCreateImage,第一个函数在上一篇文章中已经讲过了,而第二个函数就是用来将得到的位图上下文信息转变为CGImageRef ,之后再调用uiimage 的imageWithCGImage将CGImage变为uiimage,该过程和上一篇文章中uiimage转换到unsigned char*类似。



友情提示:和上一篇文章一样,导入cximage动态库后,需要将m文件变为mm文件使之能够识别c++的函数,ximage.h头文件需要在mm文件中加入。




 


你可能感兴趣的:(c)