| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Oct 2008
Beiträge: 25
| Bild mit Webcam machen und in voller Größe in Loader anzeigen
Hey, ich würde gerne per Webcam Bilder erstellen und diese via PHP auf dem Server speichern. Das funktioniert bisher auch alles, allerdings tritt beim Bild erstellen ein Fehler: Als Webcambild wird das Bild in voller größe angezeigt und beim Klick auf Bild machen (buttonPreview) wird das Bild gemacht und im Loader angezeigt aber im Loader ist das Bild dann nur noch ca. 1/4 des Webcambildes. Und der Rest des Bildes ist weiß (bzw. die Füllfarbe die eingestellt ist). Das wäre ja jetzt nicht umbedingt so schlimm zwar auch doof aber aktzeptabel. Wenn ich das Bild jetzt aber an eine PHP Datei weiterleite zum speichern wird das Bild dann aber eben (logischerweiße) so gespeichert wie es auch im Loader zu sehen ist. Woran kann das liegen das das Bild falsch gemacht wird und nicht in voller Größe? Hier der Code: Code: import flash.net.NetStream;
import flash.events.NetStatusEvent;
import flash.utils.ByteArray;
import encoding.JPEGEncoder;
import flash.display.Loader;
var cam:Camera = Camera.getCamera();
// ::::: Video ::::::
if(cam != null){
var myVideo:Video = outputcam;
cam.setMode(350,300,30);
myVideo.attachCamera(cam);
}
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
var customClient:Object = new Object();
ns.client = customClient;
ns.addEventListener(NetStatusEvent.NET_STATUS, statusmeldungen);
function statusmeldungen(meldungen:Object)
{
// Loop
if (meldungen.info.code == "NetStream.Play.Stop") {
ns.seek(0);
ns.resume();
}
};
// :::: Loader --> Anzeigen des JPEGs :::::
var vorschau:Loader = new Loader();
vorschau.x = 0;
// :::: JPG erstellen :::::
var myJPEGData:ByteArray;
function createJPEG ( evt:MouseEvent ):void
{
// neues Bitmap-Objekt
var myBmd:BitmapData = new BitmapData (myVideo.width,myVideo.height);
// Bitmap vom Video erstellen
myBmd.draw (myVideo);
// neues JPEP-Objekt (Angabe in Klasmmern ist die Qualitaet)
var myEnc:JPEGEncoder = new JPEGEncoder(100);
// neues ByteArray (binäre Daten)
myJPEGData = myEnc.encode (myBmd);
// loadBytes() lädt binäre Daten aus einem ByteArray
vorschau.loadBytes (myJPEGData);
// vorschau auf der Bühne platzieren
addChild (vorschau);
// Save-Button anzeigen
buttonPreview.visible = false;
buttonsave.visible = true;
buttonnew.visible = true;
}
buttonPreview.addEventListener (MouseEvent.MOUSE_UP, createJPEG);
buttonsave.addEventListener (MouseEvent.MOUSE_UP, save);
buttonsave.visible = false;
buttonnew.addEventListener (MouseEvent.MOUSE_UP, newpic);
buttonnew.visible = false;
// neuer URLLoader zum Senden der Daten an den Server
var myURLLoader:URLLoader = new URLLoader();
myURLLoader.addEventListener ( Event.COMPLETE, onImageSent )
function newpic(evt:MouseEvent) {
buttonsave.visible = false;
buttonnew.visible = false;
buttonPreview.visible = true;
removeChild(vorschau);
}
function save(evt:MouseEvent) {
// neue URL-Anfrage festlegen
var myRequest:URLRequest = new URLRequest ("Neues%20Avatar?action=upload");
// Content-type (application/octet-stream) header festlegen und hinzufügen
var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
myRequest.requestHeaders.push (header);
// über POST versenden
myRequest.method = URLRequestMethod.POST;
// JPEG-Daten mit der URL-Anfrage verknüpfen
myRequest.data = myJPEGData;
// URLLoader mit der URL-Anfrage verknüpfen und danach laden
myURLLoader.load (myRequest);
navigateToURL (myRequest, "_self");
}
function onImageSent ( evt:Event ):void
{
var loader:URLLoader = URLLoader (evt.target);
var myVars:URLVariables = new URLVariables (loader.data);
tf.text = "http://www.meinserver.de/" + myVars.result;
} |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jan 2003
Beiträge: 172
|
Ich sehe beim ersten hinsehen keine Fehler im Script. Kann sein das myBmd.draw (myVideo); das Video in seiner ursprünglichen Grösse zeichnet, bzw. den VideoContainer. Bin da aber nicht so sicher. Versuch sonst nur einen Ausschnitt der Bühne zu zeichnen, dann sollte die Grösse definitv 1:1 sein. Sind aber nur vermutungen, bzw. das würde ich zuerst mal versuchen.
__________________ - Portfolio |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Oct 2008
Beiträge: 25
|
Hey, also myvideo ist ja der Videocontainer Outputcam und den habe ich auf der Bühne mit B: 350 und H: 300 angegeben. Also müsste das Bild ja dann auch so groß sein. Wie meinst du das mit einem Ausschnitt der Bühne zeichnen ? Sorry habe von Flash nicht wirklich soviel Ahnung das was ich für diesen Code gebraucht habe habe ich mir alles übers Internet angeeignet. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Flash CS4] Per Loader Bild aus XML anzeigen | Sinned1710 | Flash Einsteiger | 5 | 18-02-2010 23:10 |
| Bild von lokaler Webcam anzeigen und als Video speichern | FlasherMA | Flash MX 2004 | 4 | 22-01-2006 22:37 |
| Loader Komponente: Größe des Inhalts ermitteln | wanst | Flash MX 2004 | 3 | 31-08-2005 09:30 |
| webcam ansteuern (Foto machen) | wurstbrot2000 | ActionScript 1 | 0 | 09-04-2003 07:40 |
| Bild in bestimmter Größe anzeigen / laden !!!!??? | Stick | Flash 4 und Flash 5 | 14 | 11-07-2002 15:38 |