2013-04-26 10 views
6

मैं विंडोज फोन 8 के लिए एआर लेंस बनाने की सोच रहा हूं। मैंने लेंस और कैमरा कार्यक्षमता के साथ खेला है और यह सब ठीक है और अच्छा है। मैं स्क्रीन पर आइकन और चित्र रख सकता हूं, और फोन के साथ ली गई तस्वीरों में हेरफेर कर सकता हूं। लेकिन मुझे क्या करना है स्नैप लेने से पहले वास्तविक समय में कैमरा स्क्रीन को पढ़ने में सक्षम होना है।विंडोज फोन 8 लेंस उन्नत वास्तविकता

उदाहरण: Face Lens लाइव स्क्रीन को स्कैन करना चाहिए, मुझे लगता है कि किसी की नाक/आंखें/आदि को नाक, या चश्मा, या जो कुछ भी लाइव कैमरा स्क्रीन पर रखना है, उसकी गणना करने के लिए, मुझे लगता है कि पिक्सेल की जांच करनी चाहिए।

मैं इसे एक तस्वीर के साथ कर सकता हूं, लेकिन तस्वीर लेने के बिना कैमरे में मौजूदा फ्रेम तक पहुंचने का कोई तरीका नहीं दिख रहा है। असल में, मैं कैमरा पिक्चर में दिखाए गए प्रत्येक फ्रेम को प्रत्येक पिक्सेल स्कैन करना चाहता हूं। मुझे पता है कि यह संभव है, अन्य लेंस ऐसा करते हैं, लेकिन मुझे इसे एक्सेस करने की सही विधि कहां मिलनी चाहिए।

उत्तर

5

यह निश्चित रूप से संभव है। ऐसा करने की कुंजी PhotoCamera.GetPreviewBufferArgb32() फ़ंक्शन का उपयोग करना है।

मूल विचार एक फोटोकैमेरा ऑब्जेक्ट से पूर्वावलोकन बफर प्राप्त करना है। ऐसा इस तरह किया जाता है:

int[] pixelData = new int[(int)(camera.PreviewResolution.Width * camera.PreviewResolution.Height)]; 
camera.GetPreviewBufferArgb32(pixelData); 
return pixelData; 

यह आपको एक असम्पीडित, .bmp-like picture प्राप्त करता है। फिर आप सुविधाओं को पहचानने के लिए उस डेटा तक पहुंच सकते हैं, या इसमें अतिरिक्त ऑब्जेक्ट्स पेंट कर सकते हैं।

डेटा को संशोधित करने के बाद, इस तरह यह प्रदर्शित करने के लिए एक WriteableBitmap() को धक्का:

int[] previewBuffer = GetPreviewBuffer(); 
pixelData.CopyTo(previewWriteableBitmap.Pixels, 0); 
previewWriteableBitmap.Invalidate(); 

अस्वीकरण: इसमें से अधिकांश माइक्रोसॉफ्ट पर अधिक Live Camera example से लिया गया है। Greyscale Camera example पर विशेष रूप से चित्रों को कैप्चर करने के साथ संयोजनों को संभालने के लिए सुनिश्चित करें।

+1

उत्कृष्ट उत्तर, इस के नमूने के लिए हर जगह खोजा गया लेकिन कुछ भी नहीं आया। बहुत सराहना की। – anothershrubery

+0

धन्यवाद, और आपका स्वागत है! – likeitlikeit

संबंधित मुद्दे