That sounds like a good candidate for the Thibault Imbert AS3 GIF Animation Encoding Class . I used it about 2 years ago for a project at the university. You can check it out here . In my opinion, you will 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.'; ?>
It should be.
Be sure to check out the Thibault Imbert AS3 GIF Animation Encoding Class and the Web-Cam-Stop-Motion entertainment app :) Lee Felarca SimpleFlvWriter is also worth a look, depending on your needs.
source share