• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-09-2005, 10:48   #1 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
FlashCAM - Fotografieren mit Webcam und Bild speichern

Tach, ich habe mal probiert mit der Webcam, Flash und PHP ein Bild zu schiessen und dies dann auch zu speichern.
Und ich muss sagen es klappt.

http://www.onrelease.de/flashcam/index.html

Ich machen das über getPixel() und lese ein 160x120 "Webcam-Video" aus.

Das Ergebnis sende ich dann an PHP.
Also ist es noch sehr langsam, aber vielleicht kriegt man das auch noch performer hin.

Also warten, es dauert bis ein Ergebnis kommt.

<EDIT>
Würde mich freuen, wenn Ihr postet wenn etwas nicht funktioniert hat.
</EDIT>

<EDIT2>
FlashPlayer 8 wird benötigt.

Funktionsweise:
1.) Auf den Button "Foto schiessen" klicken
2.) Danach auf den Button "Download" oder "im Browser anzeigen"

->"Download" : Es öffnet sich nach dem Warten ein Dateifenster man kann das Bild auf der Festplatte speichern

->"im Browser anzeigen" : Es wird nach dem Warten ein neues Browserfenster mit dem Bild geöffnet
</EDIT2>


cu messingfeld

Geändert von messingfeld (25-09-2005 um 22:41 Uhr)
messingfeld ist offline   Mit Zitat antworten
Alt 25-09-2005, 11:32   #2 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
is ja ne tolle sache - ging ja unter flasche7 noch nicht

aber mal zum verständnis (hab mich noch nicht mit f8 befasst (lade grad die demo)):
du zerlegst das bild in einzelne pixel und misst deren farbwert oder wie?
Magnuss ist offline   Mit Zitat antworten
Alt 25-09-2005, 11:45   #3 (permalink)
dude
 
Benutzerbild von Seedianer
 
Registriert seit: Apr 2005
Beiträge: 560
Nein bei flash8 hat man die möglichkeit auf jeden pixel zuzukreifen. Egal ob ein webcam bild oder irgendwas anderes.Das Problem ist nur die performence von as.
__________________
grüße aus dem sonnigen Weil am Rhein

Seedianer
Seedianer ist offline   Mit Zitat antworten
Alt 25-09-2005, 11:51   #4 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
also man liest die pixels aus und php kann daraus dann ein jpg erzeugen?
Magnuss ist offline   Mit Zitat antworten
Alt 25-09-2005, 11:55   #5 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
Das Prob ist mehr das sehr viele Daten verarbeitet werden.

Ich speichere die Farbwerte der Pixel in einem Array.
Der Array, in meinem Beispiel, ist 2-dimensional. (160x120)
Und jeden Pixel hat einen Hex-Wert, der 6-stellig ist.

Dieser Array muss dann erstmal an PHP gesendet werden.
Das dauert dann ein wenig.
Und PHP muss das verarbeiten und dir dein Bild liefern.

@Magnuss JA

cu messingfeld
messingfeld ist offline   Mit Zitat antworten
Alt 25-09-2005, 12:01   #6 (permalink)
dude
 
Benutzerbild von Seedianer
 
Registriert seit: Apr 2005
Beiträge: 560
jap das kommt noch hinzu hier gabs schonmal ein thread dazu.

Hauptproblem ist meiner meinung nach aber trozdem as und nicht die übertragung von as und php da man die zu übertragenden daten auch kompremieren könnte. z.B. könnte man ein array mit allen farbwerten anlegen (jeder mit einer id) und noch die höhe und breite speichern. danach einfach noch ein zweites array das von links oben nach rechts unten durch geht und nur den farb index enthält.

z.B. :
FarbArray({1:0x495862, 2:0x495532........})
Dimension({width:160, height:120})
Bilddaten({1:2, 2:2, 3:1.........})

Aber dafür is halt as zu schwach. Zumindest bei vernünftigen auflösungen.

Wird zeit das jemand die jpeg kompression in flash umsetzt
__________________
grüße aus dem sonnigen Weil am Rhein

Seedianer

Geändert von Seedianer (25-09-2005 um 12:07 Uhr)
Seedianer ist offline   Mit Zitat antworten
Alt 25-09-2005, 12:11   #7 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
Also hochauflösende Bilder wird es damit nicht geben. Da hast du recht.

Das mit dem Farbwerte habe ich mir auch schon gedacht.
So das ich erstmal alle unterschiedlichen Farbwerte auslese.
Und dann jedem Pixel über eine id die Farbwerte zuweise.

Aber oft bringen die Webcams der User auch nicht viel.

Aber für z.B. ein Avatar ist es meiner Meinung nach ausreichend.

cu messingfeld
messingfeld ist offline   Mit Zitat antworten
Alt 25-09-2005, 13:05   #8 (permalink)
^^
 
Benutzerbild von lunik3
 
Registriert seit: Aug 2001
Beiträge: 480
wow geile Funktion!!! Sowas kann ich gut für die Benutzerprofile im UPC-Board gebrauchen. Nur noch ein klick und schwupps hat der User ein aktuelles Foto im Profil. Sehr feine Sache! F8 bringt feine Sächelchen mit
lunik3 ist offline   Mit Zitat antworten
Alt 25-09-2005, 13:16   #9 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
wollte das auch grad mal ausprobieren:
ActionScript:
  1. bild.onMouseMove=function() {
  2.     trace(bild.getPixel(_root._xmouse,_root._ymouse));
  3. }

bild ist der mc in dem ich das bild importiert habe
trace: undefined
Magnuss ist offline   Mit Zitat antworten
Alt 25-09-2005, 14:40   #10 (permalink)
th.
Neuer User
 
Benutzerbild von th.
 
Registriert seit: Oct 2001
Ort: Bielefeld
Beiträge: 1.279
@Magnuss: Versuch mal die Pixel zu runden.

Gruß,
Thorsten
__________________
polyaktiv.de
Flash 3D-Renderer
th. ist offline   Mit Zitat antworten
Alt 25-09-2005, 15:25   #11 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
danke für den tipp
aber leider hilft es nichts, obwohl es ja eigentlich logisch ist da flash ja ab und an mal .95 pixelposition ausgibt
ActionScript:
  1. bild.onMouseMove=function() {
  2.     trace(getPixel(Math.round(_root._xmouse),Math.round(_root._ymouse)));
  3. }

das r ound is schon zusammen

Geändert von Magnuss (25-09-2005 um 15:28 Uhr)
Magnuss ist offline   Mit Zitat antworten
Alt 25-09-2005, 15:51   #12 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
Die MovieClip - Klasse hat keine Methode getPixel().

Du musst es über die neue BitmapData-Klasse machen.

Hier mal ein Beispiel:
ActionScript:
  1. import flash.display.BitmapData;
  2. //
  3. // bild ist die Linkage - Bezeichner einer JPEG-Datei
  4. // in der Bibliothek
  5. var bitmap = BitmapData.loadBitmap("bild");
  6. //
  7. var clip = this.createEmptyMovieClip("clip_mc", 1);
  8. clip.attachBitmap(bitmap, this.getNextHighestDepth());
  9. //
  10. onEnterFrame = function () {
  11.     var i = bitmap.getPixel(_xmouse, _ymouse);
  12.     trace(i+" - Hex: 0x"+i.toString(16));
  13. };

Füge einfach mal ein Bild in die Bibliothek und gebe dem BILD, den Linkage-Bezeichner bild.

cu messingfeld
messingfeld ist offline   Mit Zitat antworten
Alt 25-09-2005, 15:54   #13 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
danke
jetzt wirds interessant!
hab mich noch nicht mit klassen befasst - da wirds jetzt aber höchste zeit


<edith> das copy und paste klappt schon mal </edith>

Geändert von Magnuss (25-09-2005 um 15:57 Uhr)
Magnuss ist offline   Mit Zitat antworten
Alt 25-09-2005, 20:00   #14 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
spiele auf grad damit rum
du könntest ja einiges an übertragung sparen, wenn du das 0x erst in php hin montierst - oder ist das kein ausschnitt aus deinem code
Magnuss ist offline   Mit Zitat antworten
Alt 25-09-2005, 21:11   #15 (permalink)
-
 
Registriert seit: Jul 2003
Beiträge: 714
Zitat:
Zitat von Magnuss
oder ist das kein ausschnitt aus deinem code
Wenn du einen Decompiler zu Hand nimmst, dann den Richtigen.
Also das 0x lasse ich natürlich weg -> PHP kann damit nämlich nichts anfangen.

Das habe ich nur für dich zur Verständnis dahin geschrieben.

Die Source wirds es geben wenn ich das Script noch ein wenig ausgebaut und alles schön strukturiert habe.

cu messingfeld
messingfeld ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele