有时由于一些特殊目的, 需要一些RGB数据
+ (unsigned char *)rgbArray: (UIImage *) uiimage
{
CGImageRef image = [uiimage CGImage];
CGSize size = uiimage.size;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
int pixelCount = size.width * size.height;
uint8_t* rgba = malloc(pixelCount * 4);
CGContextRef context = CGBitmapContextCreate(rgba, size.width, size.height, 8, 4 * size.width, colorSpace, kCGImageAlphaPremultipliedLast);
CGContextDrawImage(context, CGRectMake(0, 0, size.width, size.height), image);
CGContextRelease(context);
uint8_t* rgb = malloc(pixelCount * 3);
int m = 0;
int n = 0;
/** 移除掉Alpha */
for(int i=0; i<pixelCount; i++){
rgb[m++] = rgba[n++];
rgb[m++] = rgba[n++];
rgb[m++] = rgba[n++];
n++;
}
free(rgba);
return rgb;
}