Comunidad de diseño web y desarrollo en internet online

¿Cómo subir una imagen capturada por la webcam al servidor y que ocupe

Citar            
MensajeEscrito el 01 Mar 2016 10:29 am
Hola a todos,

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

Por manel.pi

71 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Mar 2016 01:00 am
Asegúrate que la cámara soporte ese modo, sino simplemente lo ignora. Si es una webcam dudo que tire a ese tamaño.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Mar 2016 09:07 am
Hola Jorge,

El problema es que sólo me permite resoluciones de 160x120px, cuando la webcam consigue emitir con resoluciones mayores.
Además una imagen a 160x120px es muy pequeña como para ser visualizada a posteriori. Tampoco me permite imágenes con medidas estándard tipo 320x240 o 640x480

Alguna manera de solventarlo?

Muchas gracias

Por manel.pi

71 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Mar 2016 01:11 pm
Estás haciendo attach de la camara a un objeto video para ver si el stream matchea el área? ¿Es el viewer? ¿Probaste al revés?

viewer= new Video();
viewer.width = cam.width;
viewer.height = cam.viewer
addChild(viewer);

¿BitmapData.draw no funciona directamente sobre viewer?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Abr 2016 04:25 pm
Hola Jorge,

El "bitmapdata.draw" lo hago sobre el viewer que es del tipo "Video".
La cámara me acepta sin problema la resolución que le indico, ya que veo mi imagen en el viewer.
Si hago:

Código ActionScript :

viewer.width = cam.width;
viewer.height = cam.viewer 

No da ningún error.

Aín con todo esto, no consigo que en el servidor se grave la imagen con la resolución indicada (1024x768). He probado también la interpolación en destino, pero pixela la imagen y no es presentable.

Alguna idea más?

Muchas gracias

Por manel.pi

71 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Abr 2016 04:38 pm
Una cámara mejor

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.