Tôi chỉ mới bắt đầu trong Objective-C và tôi đang cố gắng tạo một ứng dụng đơn giản, nơi nó hiển thị chế độ xem máy ảnh với hiệu ứng mờ ảo trên đó. Tôi nhận được đầu ra Camera hoạt động với khung công tác AVFoundation. Bây giờ, tôi đang cố gắng để treo lên khung hình ảnh cốt lõi nhưng không có kiến thức làm thế nào để, tài liệu của Apple là khó hiểu cho tôi và tìm kiếm các hướng dẫn và hướng dẫn trực tuyến dẫn đến không có kết quả. Xin được cảm ơn trước về sự giúp đỡ.Làm cách nào để xuất CIFilter sang chế độ xem Camera?
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
@interface ViewController()
@property (strong ,nonatomic) CIContext *context;
@end
@implementation ViewController
AVCaptureSession *session;
AVCaptureStillImageOutput *stillImageOutput;
-(CIContext *)context
{
if(!_context)
{
_context = [CIContext contextWithOptions:nil];
}
return _context;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)viewWillAppear:(BOOL)animated{
session = [[AVCaptureSession alloc] init];
[session setSessionPreset:AVCaptureSessionPresetPhoto];
AVCaptureDevice *inputDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error;
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:inputDevice error:&error];
if ([session canAddInput:deviceInput]) {
[session addInput:deviceInput];
}
AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
[previewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
CALayer *rootLayer = [[self view] layer];
[rootLayer setMasksToBounds:YES];
CGRect frame = self.imageView.frame;
[previewLayer setFrame:frame];
[previewLayer.connection setVideoOrientation:AVCaptureVideoOrientationLandscapeRight];
[rootLayer insertSublayer:previewLayer atIndex:0];
stillImageOutput = [[AVCaptureStillImageOutput alloc] init];
NSDictionary *outputSettings = [[NSDictionary alloc] initWithObjectsAndKeys:AVVideoCodecJPEG, AVVideoCodecKey, nil];
[stillImageOutput setOutputSettings:outputSettings];
[session addOutput:stillImageOutput];
[session startRunning];
}
@end
Wow. Đuợc! sẽ kiểm tra cái này. Cảm ơn! –
Cách thực hiện việc này để Ghi cùng một Video? –