trabajo - ¿Hay alguna manera de que flash AS3 tome una instantánea de un fotograma y luego la guarde como jpeg
seleccionar adobe flash (1)
Seguro ... intenta buscar en google ... hay muchísimas maneras. Eso es asumiendo que estás de acuerdo con las clases de flash estándar. Si literalmente significa que no hay clases, entonces buena suerte para usted.
Aquí hay una forma de hacerlo. flash-php-upload
Básicamente, los puntos clave son que crees un codificador JPEG que codificará tu imagen en JPEG (también podrías hacer un PNG si quieres) así:
var jpgEncoder:JPGEncoder;
jpgEncoder = new JPGEncoder(90);
A continuación, codifica la etapa dibujando primero sus datos en un mapa de bits, y luego ecualizando eso:
var bitmapData:BitmapData = new BitmapData(stage.width, stage.height);
bitmapData.draw(stage, new Matrix());
img = jpgEncoder.encode(bitmapData);
Ahora, dependiendo de qué flash esté utilizando, puede hacer lo siguiente para solicitarle al usuario que guarde:
var file:FileReference = new FileReference();
file.save(img, "filename.jpg");
O si desea guardarlo en el servidor, puede hacer lo siguiente:
var sendHeader:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream");
var sendReq:URLRequest = new URLRequest("path-to-php.php");
sendReq.requestHeaders.push(sendHeader);
sendReq.method = URLRequestMethod.POST;
sendReq.data = img;
var sendLoader:URLLoader;
sendLoader = new URLLoader();
sendLoader.addEventListener(Event.COMPLETE, imageSentHandler);
sendLoader.load(sendReq);
Y luego necesitas un archivo PHP con lo siguiente:
<?php
if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {
$filename = "filename.jpg";
$fp = fopen( $filename,"wb");
fwrite( $fp, $GLOBALS[ ''HTTP_RAW_POST_DATA'' ] );
fclose( $fp );
echo "filename=".$filename."&base=".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"]);
}
?>
Tenga en cuenta que no he probado este código en busca de errores, pero la idea general es correcta y debería poder utilizarla y realizar los cambios que necesita para su programa.
¿Hay alguna manera para que flash AS3 tome una instantánea del marco y luego lo guarde como JPEG sin usar las clases?