Điều này có vẻ như là một nhiệm vụ đơn giản, nhưng nó là lái xe cho tôi hạt. Có thể chuyển đổi UIView chứa AVCaptureVideoPreviewLayer thành một lớp con thành hình ảnh được lưu không? Tôi muốn tạo lớp phủ thực tế gia tăng và có nút lưu ảnh vào thư viện ảnh. Giữ nút nguồn + phím chủ ghi lại ảnh chụp màn hình vào cuộn camera, nghĩa là tất cả logic chụp của tôi đang hoạt động và tác vụ có thể thực hiện được. Nhưng tôi dường như không thể làm cho nó hoạt động theo chương trình.Có thể hiển thị AVCaptureVideoPreviewLayer trong ngữ cảnh đồ họa không?
Tôi đang chụp bản xem trước trực tiếp hình ảnh của máy ảnh bằng AVCaptureVideoPreviewLayer. Tất cả các nỗ lực của tôi để hiển thị hình ảnh không thành công:
previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:captureSession];
//start the session, etc...
//this saves a white screen
- (IBAction)saveOverlay:(id)sender {
NSLog(@"saveOverlay");
UIGraphicsBeginImageContext(appDelegate.window.bounds.size);
UIGraphicsBeginImageContext(scrollView.frame.size);
[previewLayer.presentationLayer renderInContext:UIGraphicsGetCurrentContext()];
// [appDelegate.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(screenshot, self,
@selector(image:didFinishSavingWithError:contextInfo:), nil);
}
// điều này hiển thị mọi thứ, XÁC NHẬN cho lớp xem trước trống.
[appDelegate.window.layer renderInContext:UIGraphicsGetCurrentContext()];
Tôi đã đọc ở đâu đó rằng điều này có thể do sự cố bảo mật của iPhone. Điều này có đúng không?
Chỉ cần rõ ràng: Tôi không muốn lưu hình ảnh cho máy ảnh. Tôi muốn lưu lớp xem trước trong suốt chồng lên trên một hình ảnh khác, do đó tạo ra độ trong suốt. Tuy nhiên, vì một lý do nào đó tôi không thể làm cho nó hoạt động.
Tôi đoán những gì OP và tôi đang cố gắng, là để có được một nguồn cấp video trực tiếp sử dụng avcapturevideopreviewlayer và đang cố gắng để thêm một hình ảnh thu nhỏ lại. Tôi đang cố gắng thêm hình ảnh được chia tỷ lệ lên trên nguồn cấp dữ liệu video trực tiếp dựa trên phát hiện khuôn mặt và ảnh chụp màn hình được lưu chỉ là hình ảnh của lớp phủ chứ không phải là avcapturevideopreviewlayer. –
Trong hình ảnh GPU có thêm bộ lọc trên các lớp vì vậy tôi khá chắc chắn có cách để lưu chỉ lớp hiện tại (có phương pháp trong GPU Hình ảnh để làm cho UIImage từ khung) Nếu bạn muốn nhận được chỉ là những gì trên màn hình - đó là cách để làm cho ảnh chụp màn hình programmatically.I không thể nhớ nó bây giờ nhưng tôi đã nhìn thấy nó trên stackoverflow) – Roma
Roma, cảm ơn bạn rất nhiều vì câu trả lời của bạn. Mặc dù tôi không sử dụng GPUImage, tôi chắc chắn sẽ sớm sử dụng nó. Cảm ơn bạn đã đăng bài dưới dạng tùy chọn thay thế. –