use flash capture webcam image?

前端 未结 1 1582
小蘑菇
小蘑菇 2020-12-17 05:07

Is there any open source flash utility that i can embed on a webpage and use it to capture user webcam image or short duration clips and do \"POST\" to my server servlet ? i

相关标签:
1条回答
  • 2020-12-17 05:58

    This sounds like a good candidate for Thibault Imbert's AS3 GIF Animation Encoding Class. I've used it about 2 years ago for a project at University. You can check it out here. In my opinion you would have 3 steps:

    //1.Create a Camera object
    
    //this code comes from the LiveDocs
    var camera:Camera = Camera.getCamera();
    var video:Video;            
    if (camera != null) {
        video = new Video(camera.width * 2, camera.height * 2);
        video.attachCamera(camera);
        addChild(video);
    } else {
        trace("You need a camera.");
    }
    
    //2. Take one or more 'screenshots' using BitmapData
    
        var screenshot:BitmapData = new BitmapData(video.width,video.height,false,0x009900);
        screenshot.draw(video);
        //you would probably save more of these in an array called screenshots maybe
    
    //3. Create a GIFEncoder and send it to the server:
    
    
    
    //assuming screenshots is an array of BitmapData objects previously saved
    var animationEncoder:GIFEncoder = new GIFEncoder();
    animationEncoder.setRepeat(0);
    animationEncoder.setDelay (150);
    animationEncoder.start();
    for(var i:int = 1 ; i < screenshots.length ; i++){
        animationEncoder.addFrame(screenshots[i]);
    }
    animationEncoder.finish();
    //save it on the server
    var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");//binary header
    var gifRequest:URLRequest = new URLRequest ('http://yourServer/writeGIF.php?name=myFile.gif&method=download');
    gifRequest.requestHeaders.push (header);
    gifRequest.method = URLRequestMethod.POST;
    gifRequest.data = animationEncoder.stream;
    sendToURL(gifRequest);
    
    
    
    //Obviously you would have listeners to check if everything was ok, and when the operation //is complete.
    
    //The PHP code would be something simple as this
    
        <?php
    
        $method = $_GET['method'];
        $name = $_GET['name'];
    
        if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {
    
            // get bytearray
            $gif = $GLOBALS["HTTP_RAW_POST_DATA"];
    
            // add headers for download dialog-box
            header('Content-Type: image/gif');
            header('Content-Length: '.strlen($gif ));
            header('Content-disposition:'.$method.'; filename="'.$name.'".gif');
    
            echo $gif ;
    
        }  else echo 'An error occured.';
    
        ?>
    

    That should be it.

    Make sure you check out Thibault Imbert's AS3 GIF Animation Encoding Class and this Web-Cam-Stop-Motion fun app :) Lee Felarca's SimpleFlvWriter is worth looking at as well, depending on your needs.

    0 讨论(0)
提交回复
热议问题