2012-05-17 79 views
5

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

उत्तर

6

यहाँ मैं इस सवाल का जवाब देने के लिए अपने आप को लिखा है। क्रोम, एफएफ और आईई 9 में परीक्षण किया गया।

आपको बेस 64 एन्कोडर की आवश्यकता है (एक here) और पीएनजी/जेपीजी एन्कोडर (उदाहरण के लिए फ्लेक्स लाइब्रेरी से)।

कोड के रूप में:

package 
{ 
    import flash.display.BitmapData; 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 
    import flash.external.ExternalInterface; 
    import flash.media.Camera; 
    import flash.media.Video; 

    [SWF(width="640", height="480", backgroundColor="#000000")] 
    public class CameraToJS extends Sprite 
    { 
     private var camera:Camera; 
     private var video:Video; 

     public function CameraToJS() 
     { 
      addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); 
      stage.addEventListener(MouseEvent.CLICK, saveSnapshot); 
     } 

     protected function addedToStageHandler(event:Event):void 
     { 
      camera = Camera.getCamera(); 
      video = new Video(); 
      video.attachCamera(camera); 
      addChild(video); 
     } 

     protected function saveSnapshot(event:MouseEvent):void 
     { 
      var bmData:BitmapData = new BitmapData(video.width, video.height); 
      bmData.draw(video); 

      var encoder:PNGEncoder = new PNGEncoder(); 

      ExternalInterface.call("image", Base64.encodeByteArray(encoder.encode(bmData))); 
     } 
    } 
} 

Javascript कोड:

function image(data) 
{ 
    document.getElementById("img").src = "data:image/png;base64,"+ data; 
} 
+0

धन्यवाद आपके समाधान कला के लिए बहुत कुछ। आप कमाल के है! मेरी आवश्यकता थोड़ा अलग थी और मैं अपने मौजूदा कोड के साथ अपने समाधान के एक हिस्से का उपयोग करने में सक्षम था। असल में मुझे एन्कोडर के साथ कुछ परेशानी थी - ऑब्जेक्ट एन्कोडर बनाने और अगली पंक्ति में इसका उपयोग करने के बजाय बाहर निकलता है, हमें इसके बजाय PNGEncoder.encode (bmData) का उपयोग करना चाहिए। इसके अलावा, बाहरी सुरक्षा इंटरफ़ेस कुछ सुरक्षा सेटिंग्स के कारण थोड़ा परेशान था, जिसने मुझे क्रोम का उपयोग करने के बाद से कुछ समय निकाला और यह क्रोम में चुपचाप विफल रहा। मैंने फ़ायरफ़ॉक्स में त्रुटि देखी और इसे ठीक किया। –

+0

खुशी है कि मैं मदद कर सकता हूँ =) – Art

0

के माध्यम से ऐसा करना चाहता हूं यह लिंक आपकी मदद कर सकता है, वही है जो आप चाहते हैं।

http://www.xarg.org/project/jquery-webcam-plugin/

+0

धन्यवाद ymutlu, मैं पहले से ही इस समाधान को देखा था। वास्तव में मैं पहले वेबकैम से छवि को संसाधित कर रहा हूं और फिर छवि को बाहर रख रहा हूं। इसलिए मैं इसका उपयोग नहीं कर सका क्योंकि एसएफएफ फ़ाइल पहले से ही इस मामले में उत्पन्न हुई है। –