CMSampleBufferRef 与 UIImage 的转换
来源:互联网 发布:suse linux enterprise 编辑:程序博客网 时间:2024/05/17 22:54
转载自:http://iteches.com/archives/34496 (这里面还有其他 很多的信息 可看看)
CMSampleBufferRef 与 UIImage 的转换
在取得 CMSampleBufferRef 之后,还必须透过一连串的转换才能够得到 UIImage,CMSampleBufferRef –> CVImageBufferRef –> CGContextRef –> CGImageRef –> UIImage,你可以将以下程序代码任意实作于上述两个内部函数中来取得连续影像片段中的 UIImage。//制作 CVImageBufferRef
CVImageBufferRef buffer;
buffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CVPixelBufferLockBaseAddress(buffer, 0);
//从 CVImageBufferRef 取得影像的细部信息
uint8_t *base;
size_t width, height, bytesPerRow;
base = CVPixelBufferGetBaseAddress(buffer);
width = CVPixelBufferGetWidth(buffer);
height = CVPixelBufferGetHeight(buffer);
bytesPerRow = CVPixelBufferGetBytesPerRow(buffer);
//利用取得影像细部信息格式化 CGContextRef
CGColorSpaceRef colorSpace;
CGContextRef cgContext;
colorSpace = CGColorSpaceCreateDeviceRGB();
cgContext = CGBitmapContextCreate(base, width, height, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);
CGColorSpaceRelease(colorSpace);
//透过 CGImageRef 将 CGContextRef 转换成 UIImage
CGImageRef cgImage;
UIImage *image;
cgImage = CGBitmapContextCreateImage(cgContext);
image = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
CGContextRelease(cgContext);
CVPixelBufferUnlockBaseAddress(buffer, 0);
//成功转换成 UIImage
//[myImageView setImage:image];
最后,如果你希望改变撷取影像时的方向,则可以对内部函数中的 AVCaptureConnection 做 setVideoOrientation: 旋转影像,或 setVideoMirrored: 镜射影像。
- CMSampleBufferRef 与 UIImage 的转换
- CMSampleBufferRef 与 UIImage 的转换
- CMSampleBufferRef与byte*互相转换
- CMSampleBufferRef与byte*互相转换(audio)
- CMSampleBufferRef与byte*互相转换(audio)
- NSData与UIImage的转换
- NSData与UIImage之间的转换
- NSData与UIImage之间的转换
- UIImage与NSData间的转换
- NSData与UIImage之间的转换
- NSData与UIImage之间的转换
- nsdata 与 uiimage之间的转换
- NSData与UIImage之间的相互转换
- CVPixelBufferRef与UIImage的互相转换
- 【iOS初学笔记】CMSampleBufferRef 转 UIImage
- base64与UIImage转换
- CMSampleBufferRef转换为nsdata对象
- NSData与NSString、NSData与UIImage的数据类型转换
- Linux命令之umask
- xutility 中的max()使用 需要包含头文件 <windows.h>
- C++ 虚函数表
- JQM手机旋转后改Size
- sendmessage postmessage
- CMSampleBufferRef 与 UIImage 的转换
- Libgdx专题系列:实例篇 打飞机
- JS 中 new 操作符
- PHP实现定时任务
- 单纯形法
- Spring Mvc 上传图片全部过程
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC TRACEON启用指定的跟踪标记
- 程序员怎么用代码来理解access,trunk和hybrid
- 深入探讨Android R.java