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文件中加入。