【发布时间】:2014-03-20 18:20:13
【问题描述】:
我正在使用 AV Foundation 并创建了一个主层和一个子层。主层显示用户拍照前相机所见内容的实时“预览”。用户拍照后,我想将子图层的内容属性的值设置为捕获的照片。除了设置子图层的内容之外,一切都运行良好。
我知道子图层正在工作,因为我可以给它一个蓝色的背景颜色,当我在应用程序中拍照时,它会成功地将子图层变成蓝色。
这是我尝试将子图层设置为捕获图像的代码:
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
UIImage *image = [[UIImage alloc]initWithData:imageData];
CALayer *subLayer = [CALayer layer];
subLayer.contents = (id)[UIImage imageWithData:imageData];
subLayer.frame = _previewLayer.frame;
[_previewLayer addSublayer:subLayer];
我尝试了几种不同的方法来设置子图层的内容属性,但它们都不起作用:
subLayer.contents = (id) [UIImage imageWithData:imageData];
subLayer.contents = [UIImage imageWithData:imageData];
subLayer.contents = image;
另外,我知道子图层设置正确,因为如果我添加此语句,当我拍照时,子图层会变成完全蓝色:
subLayer.backgroundColor = [UIColor blueColor].CGColor;
有什么想法可以更新子图层并使其显示正在捕获的照片吗?
【问题讨论】:
标签: ios objective-c uiimage avfoundation calayer