RGBA到UIImage的转换

RGBA格式使用ffmpeg很容易生成,

case AV_PIX_FMT_RGBA:

    dataLen = width*height * 4;

    /*ptr is pFrameYUV->data[0] 4 w*h */


然后到UIImage的转换如下:

buf保存了RGBA数据

int bytes_per_pix = 4;

int width = size.width;

int height = size.height;

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

CGContextRef newContext = CGBitmapContextCreate(buf,

width, height, 8,

width * bytes_per_pix,

colorSpace, kCGBitmapByteOrder32Big | kCGImageAlphaPremultipliedLast);

CGImageRef frame = CGBitmapContextCreateImage(newContext);

image = [UIImage imageWithCGImage:frame];

CGImageRelease(frame);

CGContextRelease(newContext);

CGColorSpaceRelease(colorSpace);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 教程一:视频截图(Tutorial 01: Making Screencaps) 首先我们需要了解视频文件的一些基...
    90后的思维阅读 4,794评论 0 3
  • 1、禁止手机睡眠 [UIApplication sharedApplication].idleTimerDisab...
    FF_911阅读 1,431评论 0 3
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,144评论 1 6
  • 不知过了多久 黑夜里听见了你的声音 像春天迎来了新芽 像夏天迎来了蚕鸣 像秋天迎来了落叶 像冬天迎来了白雪 我是惊...
    sheepsun阅读 197评论 0 1
  • 依旧是那篇天,依旧是那座城。唯一的不同,应该就是人人所津津乐道的变天了吧。是的,自从辛亥革命后,乌池的一切都变的不...
    为李钟情阅读 143评论 0 0