nehmen Sie ein Bild von dem aktuellen Bild von der webcam in Flash AS3
So, ich habe es geschafft, meine webcam in eine AS3-app mit diesem code:
package{
import flash.display.Sprite;
import flash.media.Camera;
import flash.media.Video;
public class WebCam extends Sprite
{
private var camara:Camera;
private var video:Video;
public function WebCam():void {
setupCamera();
}
private function setupCamera():void
{
video = new Video(640, 480);
camara = Camera.getCamera();
camara.setMode(640, 480, 30);
video.attachCamera(camara);
addChild(video);
}
}
}
Aber ich Frage mich, ob es gibt eh ein Bild von dem aktuellen Bild von der webcam und speichern Sie es irgendwo lokal?
EDIT:
@Sean, Hier ist meine aktuelle code:
var camara;
var video;
//Get the camera reference.
camara = Camera.getCamera();
//Create a video instance
video = new Video(640, 480);
video.attachCamera(camara);
addChild(video);
var bitmapData:BitmapData = new BitmapData(640, 480);
bitmapData.draw(video);
var encoder:JPGEncoder = new JPGEncoder();
var byteArray:ByteArray = encoder.encode(bitmapData);
navnavClick.addEventListener(MouseEvent.CLICK,function(){
var fileReference:FileReference = new FileReference();
fileReference.save(byteArray);
});
Dass alles funktioniert gut, aber das Bild ist nur ein leeres (weißes) Bild. Ich habe den JPGEncoder Klasse zu. Irgendwelche Ideen?
InformationsquelleAutor | 2012-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, Sie brauchen, um zu zeichnen das Bild einer
BitmapData
.Dann musst du codieren, die
BitmapData
. Ich würde empfehlen, ein encoder verwendet, Alchemie, aber Adobe ist die Entfernung, die vom Flash-Player. Also, sollten Sie verwenden, desto langsamer as3corelib JPGEncoder.Haben Sie jetzt die rohen bytes der Bild-Datei, und schreiben Sie Sie auf die Festplatte.
(Dieser Teil muss aufgerufen werden, von einem Benutzer initiierte Aktion, wie ein klicken).
This part has to be called from a user-initiated action
, welcher Teil? Dievar fileReference:FileReference = new FileReference(); fileReference.save(byteArray);
Teil?Richtig, es ist ein Sicherheits-feature. Flash wird nicht lassen Sie öffnen Sie die "Speichern unter..." - dialog, ohne das der Benutzer klicken oder eine Taste drücken.
Hass zu halten Lauschangriff Sie, aber es scheint zu sein, speichern Sie ein leeres jpeg-Datei. Die Größe der Datei scheint in Ordnung, aber da ist kein Bild, sondern nur ein leeres weißes Bild...werde ich Bearbeiten meine Frage, mit dem aktuellen code. Danke xD
ah, ich sehe, was ich falsch gemacht habe. Ich sollte die Zeichnung, das Bild und die Codierung, auf die Benutzer klicken, nicht vor. Mein schlechtes. Danke.
Die Zeichnung muss nicht in das click-Ereignis, es muss nur getan werden, wenn das video fertig ist, das dauert ein paar Sekunden. Froh bekamen Sie es das arbeiten.
InformationsquelleAutor Sean Fujiwara
Gut, versuchen Sie diesen code verwende ich es und es funktioniert gut:
Hoffe, das hilft
InformationsquelleAutor Ehab Saleh