Estoy haciendo una aplicación AIR para desktos y labtops. Dicha aplicación coge la cámara, muestra el stream en un objecto "Video" y en cuanto se pulsa un botón, hace una captura de la webcam. Una vez hecha la captura, convertida a JPG y subida al servidor, la imagen resultante es de 1024x768px, pero la mayor parte es espacio en blanco, mientras que lo capturado por la webcam ocupa un espacio residual (160x120px en la parte superior izquierda de la imagen).
El código AS3 que tengo es el siguiente:
Código ActionScript :
viewer.smoothing = true; viewer.deblocking = 5; viewer.attachCamera(cam); cam.setQuality(0, 100); cam.setMode(1024, 768, 20); cam.setKeyFrameInterval(10); cam.setMotionLevel(100); cam.setLoopback(false); var bitmapData:BitmapData= new BitmapData(1024, 768); bitmapData.draw(photo_mc.viewer); var jpg:JPGEncoder = new JPGEncoder(); var myBytes:ByteArray = jpg.encode(bitmapData); var request:URLRequest = new URLRequest(urlToCall); request.data = myBytes; request.method = URLRequestMethod.POST; var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream"); request.requestHeaders.push(header); var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onCertificateComplete); loader.load(request);
En el lado servidor tengo lo siguiente en C#:
Código :
Stream rs = (Stream)context.Request.InputStream; string destPath = "c:\\docs\\img.jpg"; FileStream fs = new FileStream(destPath, FileMode.Create); byte[] byWork = new byte[2047]; int iWork; do { iWork = rs.Read(byWork, 0, byWork.Length); fs.Write(byWork, 0, iWork); } while (iWork != 0); fs.Flush(); fs.Close(); rs.Close();
Alguien sabe como puedo hacer desaparecer el espacio en blanco y que el contenido capturado por la webcam ocupe 1024x768px, es decir, el total de la imagen?
Muchas gracias