Iniciamos hoje alguns artigos sobre a captura de imagem provenientes da WebCam do usuário. Inicialmente, algo simples apenas para nos ambientarmos com toda a estrutura. É válido lembrar que o Flash Player possui um bom suporte para capturar imagem/som do computador. No exemplo a seguir, iremos fazer isso de forma muito rápida:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600">
<s:creationComplete>
<![CDATA[
//cam é a instância de sua WebCam
//Geralmente surge uma mensagem de permissão ao usuário
var cam:Camera = Camera.getCamera();
// Aqui inserimos a instância da câmera no
// componente VideoDisplay
webcam.attachCamera(cam);
]]>
</s:creationComplete>
<mx:VideoDisplay id="webcam"
width="320" height="240"
top="100"
left="100"
/>
<s:Button id="salvar" label="Salvar"
top="350"
left="150">
<s:click>
<![CDATA[
import mx.graphics.ImageSnapshot;
import mx.graphics.codec.JPEGEncoder;
//Primeiro criamos a imagem Bitmap da câmera
var imageBitmapData:BitmapData;
imageBitmapData= ImageSnapshot.captureBitmapData(webcam);
//Depois transformamos essa imagem em bytecodes
var encoder:JPEGEncoder = new JPEGEncoder();
var rawBytes:ByteArray = encoder.encode(imageBitmapData);
//FileReference é usado para salvar a imagem no disco
new FileReference().save(rawBytes,"WebCam.jpg");
]]>
</s:click>
</s:Button>
</s:Application>
Veja o exemplo aqui (Botão direito do mouse para ver o código fonte)
Este exemplo rápido foi retirado dos sites: RiaCodes e Luiz Henrique Angeli
No próximo artigo iremos criar uma tela de cadastro que captura a imagem, o que está tornando muito usual hoje em dia!
ps: Renato, esta parte de gravar audio/vídeo pela web é complexa !! Eu recomendo o livro: Flex 3 + Flash Media Server 3.5, do nosso amigo Carlos Eduardo.
Como fazer pra enviar esta imagem gerada no flash pro php, em forma de post?
O exemplo esta fora do ar…