ios RGBA数据转UIImage

来源:互联网 发布:淘宝宝贝一键上传 编辑:程序博客网 时间:2024/06/06 20:04

ios RGBA数据转UIImage  UIImage 获取RGBA数据

1. RGBA 数据


由于工作需要 把ffmpeg解压出来的RGBA裸数据 转成UIImage格式的image 再imageview 上进行显示,所以需要使用到下边技术。


2.  获取颜色空间

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

3. 如下所示

CGDataProviderRef dataProvider = CGDataProviderCreateWithData(NULL, _rawImagePixelsTemp, totalBytesForImage, (CGDataProviderReleaseDataCallback)&freeData);    CGColorSpaceRef defaultRGBColorSpace = CGColorSpaceCreateDeviceRGB();        CGImageRef cgImageFromBytes = CGImageCreate((int)currentFBOSize.width, (int)currentFBOSize.height, 8, 32, 4 * (int)currentFBOSize.width, defaultRGBColorSpace, kCGBitmapByteOrderDefault, dataProvider, NULL, NO, kCGRenderingIntentDefault);    UIImage *finalImage = [UIImage imageWithCGImage:cgImageFromBytes scale:1.0 orientation:UIImageOrientationDownMirrored];


4, 或者如下说是


- (void) convertBitsDataIntoUIImage:(void*)bitsData{    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();//    void *colorData = bitsData;        CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, colorData, 180*4*180, NULL);    CGImageRef cgImage2 = CGImageCreate(180,                                        180,                                        8,                                        8 * 4,                                        180*4,                                        colorSpace,                                        kCGImageAlphaPremultipliedLast|kCGBitmapByteOrderDefault,                                        provider,                                        NULL,                                        NO,                                        kCGRenderingIntentDefault);    UIImage *image = [UIImage imageWithCGImage:cgImage2];         _imageView.image = image;        CGDataProviderRelease(provider);    CGColorSpaceRelease(colorSpace);    CGImageRelease(cgImage2);}



原创粉丝点击