यह एक साधारण काम की तरह लगता है, फिर भी यह मुझे पागल कर रहा है। क्या UIView को AVCaptureVideoPreviewLayer को सहेजने के लिए एक छवि में एक उपन्यास के रूप में परिवर्तित करना संभव है? मैं एक उन्नत वास्तविकता ओवरले बनाना चाहता हूं और एक बटन को कैमरा रोल में चित्र सहेजना चाहता हूं। पावर बटन + होम कुंजी को पकड़ना कैमरा रोल पर स्क्रीनशॉट को कैप्चर करता है, जिसका अर्थ है कि मेरा सभी कैप्चर तर्क काम कर रहा है, और कार्य संभव है। लेकिन मैं इसे प्रोग्रामेटिक रूप से काम करने में सक्षम नहीं लग सकता।क्या ग्राफिक्स संदर्भ में AVCaptureVideoPreviewLayer प्रस्तुत करना संभव है?
मैं AVCaptureVideoPreviewLayer का उपयोग कर कैमरे की छवि का लाइव पूर्वावलोकन कैप्चर कर रहा हूं। छवि प्रस्तुत करने के लिए मेरे प्रयास की सभी असफल:
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);
}
// इस सब कुछ प्रस्तुत हुई है, पूर्वावलोकन परत है, जो खाली है के लिए छोड़कर।
[appDelegate.window.layer renderInContext:UIGraphicsGetCurrentContext()];
मैंने कहीं पढ़ा है कि यह आईफोन के सुरक्षा मुद्दों के कारण हो सकता है। क्या ये सच है?
बस स्पष्ट होने के लिए: मैं कैमरे के लिए छवि को सहेजना नहीं चाहता। मैं पारदर्शी पूर्वावलोकन परत को दूसरी छवि पर अतिरंजित करना चाहता हूं, इस प्रकार पारदर्शिता बना रहा हूं। फिर भी किसी कारण से मैं इसे काम नहीं कर सकता।
मुझे लगता है कि क्या ओ पी और मैं कोशिश कर रहे हैं, avcapturevideopreviewlayer का उपयोग कर एक लाइव वीडियो फीड प्राप्त करने के लिए है और एक आकार बदली गई चित्र जोड़ने की कोशिश कर रहे हैं। मैं फेस डिटेक्शन के आधार पर लाइव वीडियो फीड के शीर्ष पर एक स्केल की गई छवि जोड़ने की कोशिश कर रहा हूं, और सहेजा गया स्क्रीनशॉट केवल ओवरले का है और avcapturevideopreviewlayer नहीं है। –
जीपीयू छवि में पहले परतों पर फ़िल्टर जोड़ते हैं, इसलिए मुझे पूरा यकीन है कि केवल मौजूदा परत को सहेजने का तरीका है (GPI छवि में विधि है जो फ्रेम से UIImage बनाने के लिए है) यदि आप डिस्प्ले पर क्या चाहते हैं - वहां स्क्रीनशॉट प्रोग्रामेटिक रूप से बनाने का तरीका है। मुझे अब याद नहीं है लेकिन मैंने इसे स्टैक ओवरफ्लो पर देखा है) – Roma
रोमा, आपके उत्तर के लिए बहुत बहुत धन्यवाद। हालांकि मैंने GPUImage का उपयोग नहीं किया है, मैं निश्चित रूप से जल्द ही इसका उपयोग करूँगा। इसे वैकल्पिक विकल्प के रूप में पोस्ट करने के लिए धन्यवाद। –